Cara GitLab dengan fastlane mengumpul, menandatangani dan menerbitkan aplikasi iOS ke App Store.
Kami baru-baru ini
Di sini kita akan ambil
Beberapa perkataan tentang konfigurasi Apple Store
Kami memerlukan apl App Store, sijil pengedaran dan profil peruntukan untuk menggabungkan segala-galanya.
Perkara yang paling sukar di sini ialah menyediakan hak tandatangan di App Store. Saya harap anda boleh memikirkan perkara ini sendiri. Jika anda baru, saya akan menunjukkan anda ke arah yang betul, tetapi kami tidak akan bercakap tentang selok-belok mengurus sijil Apple di sini, dan ia sentiasa berubah. Siaran ini akan membantu anda bermula.
Apl Saya
Anda memerlukan apl dalam App Store Connect supaya anda mempunyai ID untuk konfigurasi .xcodebuild
. Profil dan ID aplikasi menggabungkan binaan kod, harga dan ketersediaan serta konfigurasi TestFlight untuk mengedarkan aplikasi ujian kepada pengguna. Jangan lakukan ujian awam, ujian peribadi akan mencukupi jika anda mempunyai kumpulan kecil, persediaan mudah dan tidak memerlukan kebenaran tambahan daripada Apple.
Profil permulaan
Selain persediaan apl, anda memerlukan kunci pengedaran dan pembangunan iOS yang dibuat dalam bahagian Sijil, Pengecam & Profil pada konsol Pembangun Apple. Semua sijil ini boleh digabungkan ke dalam profil peruntukan.
Pengguna yang akan disahkan perlu boleh membuat sijil, jika tidak, langkah-langkahnya
pilihan lain
Selain kaedah mudah ini, terdapat cara lain untuk mengkonfigurasi sijil dan profil. Jadi, jika anda bekerja secara berbeza, anda mungkin perlu menyesuaikan diri. Perkara yang paling penting ialah anda memerlukan konfigurasi .xcodebuild
, yang akan menunjuk ke fail yang diperlukan, dan rantai kunci mesti tersedia pada komputer binaan untuk pengguna di bawah namanya yang dijalankan oleh pelari. Untuk tandatangan digital kami menggunakan fastlane, dan jika terdapat masalah atau anda ingin mengetahui lebih lanjut, lihat butirannya
Dalam contoh ini saya menggunakan pendekatan
Menyediakan GitLab dan fastlane
Menyediakan CI Runner
Setelah mengumpul semua data ini, kami beralih kepada konfigurasi pelari GitLab pada peranti MacOS. Malangnya, anda hanya boleh membuat apl iOS pada MacOS. Tetapi segala-galanya boleh berubah, dan jika anda menjangkakan kemajuan dalam bidang ini, perhatikan projek seperti itu
Menyediakan pelari adalah sangat mudah. Ikut semasa
Catatan. Pelari mesti menggunakan program boleh laku shell
. Ini diperlukan untuk membina iOS pada macOS untuk berfungsi secara langsung sebagai pengguna dan bukannya melalui bekas. Jika anda menggunakan shell
, pembinaan dan ujian dilakukan sebagai pengguna pelari, terus pada hos binaan. Ia tidak selamat seperti bekas, jadi lebih baik semak imbas
sudo curl --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-darwin-amd64
sudo chmod +x /usr/local/bin/gitlab-runner
cd ~
gitlab-runner install
gitlab-runner start
Rantai Kunci Apple mesti dikonfigurasikan pada hos ini dengan akses kepada kunci yang perlu dibina oleh Xcode. Cara paling mudah untuk menguji ini adalah dengan log masuk sebagai pengguna yang akan menjalankan binaan dan cuba membinanya secara manual. Jika sistem meminta akses rantai kunci, pilih Sentiasa Benarkan CI berfungsi. Mungkin berbaloi untuk masuk dan menonton beberapa saluran paip pertama untuk memastikan mereka tidak meminta rantai kunci lagi. Masalahnya ialah Apple tidak memudahkan kami menggunakan mod Auto, tetapi sebaik sahaja anda menggunakannya, semuanya akan baik-baik saja.
laluan cepat init
Untuk menggunakan fastlane dalam projek, jalankan fastlane init
. Ikut saja
Dalam direktori projek anda, jalankan arahan ini:
xcode-select --install
sudo gem install fastlane -NV
# Alternatively using Homebrew
# brew cask install fastlane
fastlane init
fastlane akan meminta konfigurasi asas dan kemudian mencipta folder fastlane dalam projek dengan tiga fail:
1. fastlane/Appfile
Tidak ada yang rumit di sini. Cuma pastikan ID Apple dan ID Apl anda betul.
app_identifier("com.vontrance.flappybird") # The bundle identifier of your app
apple_id("[email protected]") # Your Apple email address
2. fastlane/Fastfile
Fastfile
mentakrifkan langkah membina. Kami menggunakan banyak ciri terbina dalam fastlane, jadi semuanya jelas di sini juga. Kami mencipta satu baris yang menerima sijil, melaksanakan pemasangan dan memuat naiknya ke TestFlight. Anda boleh membahagikan proses ini kepada tugasan yang berbeza jika perlu. Semua operasi ini (get_certificates
, get_provisioning_profile
, gym
ΠΈ upload_to_testflight
) sudah termasuk dalam fastlane.
Aktiviti get_certificates
ΠΈ get_provisioning_profile
berkaitan dengan pendekatan menandatangani
default_platform(:ios)
platform :ios do
desc "Build the application"
lane :flappybuild do
get_certificates
get_provisioning_profile
gym
upload_to_testflight
end
end
3. fastlane/Gymfile
Ini adalah fail pilihan, tetapi saya menciptanya secara manual untuk menukar direktori output lalai dan meletakkan output dalam folder semasa. Ini memudahkan CI. Jika berminat, baca tentang gym
dan parameternya dalam
https://docs.fastlane.tools/actions/gym/
Ours .gitlab-ci.yml
Jadi, kami mempunyai pelari CI untuk projek itu, dan kami bersedia untuk menguji saluran paip. Mari lihat apa yang kita ada .gitlab-ci.yml
:
stages:
- build
variables:
LC_ALL: "en_US.UTF-8"
LANG: "en_US.UTF-8"
GIT_STRATEGY: clone
build:
stage: build
script:
- bundle install
- bundle exec fastlane flappybuild
artifacts:
paths:
- ./FlappyBird.ipa
ΠΡΠ΅ ΠΎΡΠ»ΠΈΡΠ½ΠΎ! clone
dengan melaksanakan program shell
, supaya kami mempunyai ruang kerja yang bersih untuk setiap perhimpunan, dan hanya hubungi flappybuild
laluan cepat, seperti yang dilihat di atas. Hasilnya, kami mendapat pemasangan, tandatangan dan penggunaan pemasangan terbaharu dalam TestFlight.
Kami juga mendapatkan artifak dan menyimpannya dengan pemasangan. Sila ambil perhatian bahawa format .ipa
ialah boleh laku ARM bertandatangan yang tidak dijalankan dalam simulator. Jika anda mahukan output untuk simulator, cuma tambahkan sasaran binaan yang menghasilkannya, dan kemudian masukkannya dalam laluan artifak.
Pembolehubah persekitaran lain
Terdapat beberapa pembolehubah persekitaran di sini yang menjadikan semuanya berfungsi.
FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD
ΠΈ FASTLANE_SESSION
Pengesahan untuk fastlane diperlukan untuk mengesahkan dalam App Store dan memuat naik ke TestFlight. Untuk melakukan ini, buat kata laluan untuk aplikasi yang akan digunakan dalam CI. Butiran
Jika anda mempunyai pengesahan dua faktor, buat pembolehubah FASTLANE_SESSION
(arahan di sana).
FASTLANE_USER
ΠΈ FASTLANE_PASSWORD
Itu FASTLANE_USER
ΠΈ FASTLANE_PASSWORD
. Butiran
Kesimpulannya
Anda boleh melihat bagaimana ia berfungsi
Saya harap ini membantu dan memberi inspirasi kepada anda untuk bekerja dengan binaan iOS dalam projek GitLab. Ini satu lagi CI_BUILD_ID
(untuk binaan tambahan) kepada
Satu lagi ciri hebat fastlane ialah
Beritahu kami dalam ulasan tentang pengalaman anda dan kongsi idea anda untuk menambah baik GitLab untuk pembangunan apl iOS.
Sumber: www.habr.com