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)
Appfile
samaFastfile
akan 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
, kalauAppfile
nya kosong berarti belum login, pilih no 2 dan 3 - Buat
.env
file - Taro keys di
.env
file
Setup Functions
- Copy function untuk naikin ke testflight
- Build version value diganti secara manual
- Jika menggunakan function
upload_to_testflight
udah gausah di klik manage2, sedangkanbuild_app
hanya untuk menghasilkan.ipa
file fastlane <nama func>
- Kalau ini berhasil udah bisa ke testflight (tapi ini gak auto increment)
pilot
danupload_to_testflight
sama, cuman pilot manual approve- Kalau mau naik ke appstore bisa pakai
deliver
atauupload_to_appstore
, kita pakainya deliver - pilot butuh
credential p8 yg di convert ke base 84
danlogin to apple
- sebelum menjalankan pilot ada beberapa func yang harus di jalanin dulu
fastlane run_local_deployment
dan 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 appstore
ini 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_local
ini 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_build
kepake kalau konek dengan github- method of distribution = match
load_gym_configuration
untuk 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
- 😅💨🚃🚃