Bagaimana GitLab dengan fastlane mengumpulkan, menandatangani, dan menerbitkan aplikasi iOS ke App Store.
Kami baru saja melakukannya
Di sini kita akan mengambil
Beberapa kata tentang konfigurasi Apple Store
Kita memerlukan aplikasi App Store, sertifikat distribusi, dan profil penyediaan untuk menyatukan semuanya.
Hal tersulit di sini adalah mengatur hak penandatanganan di App Store. Saya harap Anda bisa memikirkannya sendiri. Jika Anda baru, saya akan mengarahkan Anda ke arah yang benar, tetapi kami tidak akan membicarakan seluk-beluk pengelolaan sertifikat Apple di sini, dan sertifikat tersebut terus berubah. Posting ini akan membantu Anda memulai.
Aplikasi saya
Anda memerlukan aplikasi di App Store Connect agar Anda memiliki ID untuk konfigurasi .xcodebuild
. Profil dan ID aplikasi menggabungkan pembuatan kode, harga dan ketersediaan, serta konfigurasi TestFlight untuk mendistribusikan aplikasi pengujian kepada pengguna. Jangan lakukan pengujian publik, pengujian pribadi sudah cukup jika Anda memiliki grup kecil, pengaturan mudah, dan tidak memerlukan izin tambahan dari Apple.
Profil inisialisasi
Selain pengaturan aplikasi, Anda memerlukan kunci distribusi dan pengembangan iOS yang dibuat di bagian Sertifikat, Pengidentifikasi & Profil di konsol Pengembang Apple. Semua sertifikat ini dapat digabungkan menjadi profil penyediaan.
Pengguna yang akan diautentikasi harus dapat membuat sertifikat, jika tidak, langkah-langkahnya
pilihan lain
Selain metode sederhana ini, ada cara lain untuk mengonfigurasi sertifikat dan profil. Jadi, jika Anda bekerja secara berbeda, Anda mungkin harus beradaptasi. Yang paling penting adalah Anda memerlukan konfigurasi .xcodebuild
, yang akan menunjuk ke file yang diperlukan, dan gantungan kunci harus tersedia di komputer build untuk pengguna yang namanya menjalankan runner. Untuk tanda tangan digital kami menggunakan fastlane, dan jika ada masalah atau ingin tahu lebih lanjut, lihat detailnya
Dalam contoh ini saya menggunakan pendekatan
Mempersiapkan GitLab dan fastlane
Mempersiapkan Pelari CI
Setelah mengumpulkan semua data ini, kami melanjutkan ke konfigurasi runner GitLab di perangkat MacOS. Sayangnya, Anda hanya bisa membuat aplikasi iOS di MacOS. Tapi segalanya bisa berubah, dan jika Anda mengharapkan kemajuan di bidang ini, pantau terus proyek-proyek seperti itu
Menyiapkan pelari sangat sederhana. Ikuti arus
Catatan. Pelari harus menggunakan program yang dapat dieksekusi shell
. Hal ini diperlukan untuk membangun iOS di macOS agar dapat bekerja secara langsung sebagai pengguna, bukan melalui container. Jika Anda menggunakan shell
, pembangunan dan pengujian dilakukan sebagai pengguna pelari, langsung di host pembangunan. Ini tidak seaman kontainer, jadi lebih baik jelajahi
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 harus dikonfigurasi pada host ini dengan akses ke kunci yang perlu dibuat oleh Xcode. Cara termudah untuk mengujinya adalah dengan login sebagai pengguna yang akan menjalankan build dan mencoba membuatnya secara manual. Jika sistem meminta akses rantai kunci, pilih Selalu Izinkan agar CI berfungsi. Mungkin ada baiknya untuk masuk dan mengamati beberapa saluran pipa pertama untuk memastikan mereka tidak meminta gantungan kunci lagi. Masalahnya adalah Apple tidak memberikan kemudahan bagi kita untuk menggunakan mode Otomatis, tetapi begitu Anda menjalankannya, semuanya akan baik-baik saja.
jalur cepat init
Untuk menggunakan fastlane dalam sebuah proyek, jalankan fastlane init
. Ikuti saja
Di direktori proyek Anda, jalankan perintah berikut:
xcode-select --install
sudo gem install fastlane -NV
# Alternatively using Homebrew
# brew cask install fastlane
fastlane init
fastlane akan meminta konfigurasi dasar dan kemudian membuat folder fastlane di proyek dengan tiga file:
1. fastlane/Appfile
Tidak ada yang rumit di sini. Pastikan saja ID Apple dan ID Aplikasi Anda benar.
app_identifier("com.vontrance.flappybird") # The bundle identifier of your app
apple_id("[email protected]") # Your Apple email address
2. fastlane/Fastfile
Fastfile
mendefinisikan langkah-langkah pembangunan. Kami menggunakan banyak fitur bawaan fastlane, jadi semuanya jelas di sini juga. Kami membuat satu baris yang menerima sertifikat, melakukan perakitan dan mengunggahnya ke TestFlight. Anda dapat membagi proses ini menjadi beberapa tugas berbeda jika perlu. Semua operasi ini (get_certificates
, get_provisioning_profile
, gym
и upload_to_testflight
) sudah termasuk dalam fastlane.
Aktivitas get_certificates
и get_provisioning_profile
terkait dengan pendekatan penandatanganan
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 file opsional, tetapi saya membuatnya secara manual untuk mengubah direktori keluaran default dan menempatkan keluaran di folder saat ini. Ini menyederhanakan CI. Jika tertarik, baca tentang gym
dan parameternya di
https://docs.fastlane.tools/actions/gym/
Milik kita .gitlab-ci.yml
Jadi, kami memiliki pelari CI untuk proyek tersebut dan kami siap untuk menguji alurnya. Mari kita lihat apa yang kita miliki .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 menjalankan program shell
, sehingga kami memiliki ruang kerja yang bersih untuk setiap perakitan, dan cukup menelepon flappybuild
jalur cepat, seperti yang terlihat di atas. Hasilnya, kami mendapatkan perakitan, tanda tangan, dan penerapan perakitan terbaru di TestFlight.
Kami juga mendapatkan artefak dan menyimpannya dengan perakitan. Harap dicatat bahwa formatnya .ipa
adalah executable ARM bertanda tangan yang tidak berjalan di simulator. Jika Anda menginginkan keluaran untuk simulator, cukup tambahkan target pembangunan yang menghasilkannya, lalu sertakan dalam jalur artefak.
Variabel lingkungan lainnya
Ada beberapa variabel lingkungan di sini yang membuat semuanya berfungsi.
FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD
и FASTLANE_SESSION
Otentikasi untuk fastlane diperlukan untuk mengautentikasi di App Store dan mengunggah ke TestFlight. Untuk melakukannya, buatlah kata sandi untuk aplikasi yang akan digunakan di CI. Detail
Jika Anda memiliki autentikasi dua faktor, buatlah variabel FASTLANE_SESSION
(instruksi di sana).
FASTLANE_USER
и FASTLANE_PASSWORD
Bahwa FASTLANE_USER
и FASTLANE_PASSWORD
. Detail
Sebagai kesimpulan
Anda dapat melihat cara kerjanya
Saya harap ini bermanfaat dan menginspirasi Anda untuk bekerja dengan iOS build di proyek GitLab. Ini satu lagi CI_BUILD_ID
(untuk pembangunan tambahan) hingga
Fitur keren lainnya dari fastlane adalah
Beri tahu kami di komentar tentang pengalaman Anda dan bagikan ide Anda untuk meningkatkan GitLab untuk pengembangan aplikasi iOS.
Sumber: www.habr.com