
Cara GitLab dengan fastlane mengumpul, menandatangani dan menerbitkan aplikasi iOS ke App Store.
Kami baru-baru ini dengan GitLab dan . Di sini kita akan melihat cara membina dan menjalankan apl iOS dan menerbitkannya ke TestFlight. Lihat betapa hebatnya , saya mengambil pemasangan dan mendapatkan kemas kini kepada versi ujian aplikasi pada iPad Pro yang sama tempat saya membangunkannya.
Di sini kita akan ambil , dengan siapa saya merakam video itu.
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 anda akan melihat ralat.
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 , tetapi untuk kegunaan sebenar ia mungkin lebih sesuai .
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 и , dan tugas dalaman kami .
Menyediakan pelari adalah sangat mudah. Ikut semasa .
Catatan. Pelari mesti menggunakan program boleh laku shellIni diperlukan untuk membina iOS dalam macOSuntuk berfungsi secara langsung sebagai pengguna, bukannya melalui kontena. 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 jadi anda tidak terlepas apa-apa.
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 startRantai 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 , terutamanya dalam bahagian tentang , kerana kami memerlukan pelancaran yang pantas dan boleh diramal melalui saluran paip CI automatik.
Dalam direktori projek anda, jalankan arahan ini:
xcode-select --install
sudo gem install fastlane -NV
# Alternatively using Homebrew
# brew cask install fastlane
fastlane initfastlane 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("your-email@your-domain.com") # Your Apple email address2. 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 . Jika anda menggunakan atau apa sahaja, buat perubahan.
default_platform(:ios)
platform :ios do
desc "Build the application"
lane :flappybuild do
get_certificates
get_provisioning_profile
gym
upload_to_testflight
end
end3. 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Все отлично! , gunakan strategi 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 dipanggil profil permulaan dan sijil atas permintaan, anda perlu menetapkan pembolehubah FASTLANE_USER и FASTLANE_PASSWORD. Butiran . Ini tidak perlu jika anda menggunakan kaedah tandatangan yang berbeza.
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 untuk fastlane, untuk berjaga-jaga. Anda mungkin mahu menggunakan CI_BUILD_ID (untuk binaan tambahan) kepada .
Satu lagi ciri hebat fastlane ialah untuk App Store, yang sangat mudah untuk disediakan.
Beritahu kami dalam ulasan tentang pengalaman anda dan kongsi idea anda untuk menambah baik GitLab untuk pembangunan apl iOS.
Sumber: www.habr.com
