Preparation
- Install Homebrew
- Install Cocoapods
- Install Bundle
- Install Fastlane
- Make sure udah bisa upload ke appstore dari XCode secara manual
[! warning] Error di fastlane ini cukup general jadi harus dicari sendiri salahnya dimana dan cara fixnya
[! info] Why fastlane? Github actions selalu gagal Credentials kita harus dikirim ke mereka (expect p8/p2 credentials) p12 bisa diambil dari keychain (apple distribution) di export to local setiap export credentials akan minta set password, yang kedua password laptop
Local CI/CD
- Buka terminal
- fastlane init
- Akan ditanya kegunaan fastlane nya untuk apa, pilih no 4 manual setup (kalau belum pernah pakai fastlane bisa pilih no 2/3 untuk login konekin dengan appstoreconnect di local)
- Appfilesama- Fastfileakan tergenerate secara otomatis. Fastfile untuk menaruh fungsi2 fastlane, sedangkan appfile berisikan identifiers dari hal2 yang dibutuhkan untuk app agar bisa terintegrate dengan fastlane.
- Create Apple Application Specific Password (cuman akan muncul sekali, harus disimpan)
- Buka folder fastlane, kalauAppfilenya kosong berarti belum login, pilih no 2 dan 3
- Buat .envfile
- Taro keys di .envfile
Setup Functions
- Copy function untuk naikin ke testflight
- Build version value diganti secara manual
- Jika menggunakan function upload_to_testflightudah gausah di klik manage2, sedangkanbuild_apphanya untuk menghasilkan.ipafile
- fastlane <nama func>
- Kalau ini berhasil udah bisa ke testflight (tapi ini gak auto increment)
- pilotdan- upload_to_testflightsama, cuman pilot manual approve
- Kalau mau naik ke appstore bisa pakai deliveratauupload_to_appstore, kita pakainya deliver
- pilot butuh credential p8 yg di convert ke base 84danlogin to apple
- sebelum menjalankan pilot ada beberapa func yang harus di jalanin dulu
- fastlane run_local_deploymentdan bakal ada prompt untuk pilih configurationnya
[! question] Kapan pake pilot? Kalau sudah terhubung dengan github
setup_produce
ketika pake xcode berhasil tapi fastlane gagal, kalau udah di comment, nanti akan masuk identifiers di appstoreconnect
- Untuk embed p8 harus di konekin sama fastlane match. Ke xcode, provisioning profile, select match appstore (ini adalah output dari menjalankan function fastlane match appstoreini hanya dijalankan sekali!) ini nanti adanya di profiles appstoreconnect. Bisa 1 dipakai bersama makanya bisa di download.
- Convert p8 original ke base 64 menggunakan base64 path_to-pb8 | pbcopy
- p8 ambil dari appstore connect (Users and Access → Keys) ini juga cuman bisa sekali di generate
- increment_build_number_from_latest_testflight_localini digunakan untuk auto incremen version build
- Target by (target yg ada di xcode) dia ngambil versi aplikasi saat ini dan dikirim ke test flight, dia akan increment dari value itu
- ! karena multiple flavor harus di adjust per bundle identifier
- current_buildkepake kalau konek dengan github
- method of distribution = match
- load_gym_configurationuntuk generate signed ipa or app file
- kalau udh berhasil upload, jangan lupa delete keychain, jadi duplicate nnti malah gabisa
- 1 func 1 flavor
Info
Ketika melakukan match_appstore, akan disuruh taro sertif dimana, lebih baik di repo yang berbeda
Github
- Side Note Reza: match() kasih conditional based on needs
- 😅💨🚃🚃