Kumaha GitLab sareng fastlane ngumpulkeun, nandaan sareng nyebarkeun aplikasi ios ka App Store.
Simkuring nembe kagungan
Di dieu urang bakal nyandak
Sababaraha kecap ngeunaan konfigurasi Apple Store
Kami peryogi aplikasi App Store, sertipikat distribusi, sareng profil provisioning pikeun ngahijikeun sadayana.
Hal anu paling hese di dieu nyaéta nyetél hak nandatanganan di App Store. Abdi ngarepkeun anjeun tiasa terang ieu nyalira. Upami anjeun énggal, kuring bakal nunjukkeun anjeun ka arah anu leres, tapi urang moal ngobrol ngeunaan seluk-beluk ngatur sertipikat Apple di dieu, sareng aranjeunna terus-terusan robih. Tulisan ieu bakal ngabantosan anjeun ngamimitian.
Aplikasi kuring
Anjeun peryogi aplikasi dina App Store Connect supados anjeun gaduh ID pikeun konfigurasi .xcodebuild
. Profil sareng ID aplikasi ngagabungkeun kode ngawangun, harga sareng kasadiaan, sareng konfigurasi TestFlight pikeun nyebarkeun aplikasi uji ka pangguna. Entong ngalakukeun tés umum, tés pribadi bakal cekap upami anjeun gaduh grup leutik, pangaturan anu gampang, sareng henteu peryogi idin tambahan ti Apple.
Propil initialization
Salian setelan aplikasi, anjeun peryogi distribusi ios sareng konci pamekaran anu didamel dina bagian Sértipikat, Identifiers & Profil dina konsol Apple Developer. Sadaya sertipikat ieu tiasa digabungkeun kana profil provisioning.
Pamaké anu bakal dioténtikasi kedah tiasa ngadamel sertipikat, upami henteu léngkah-léngkahna
Pilihan séjén
Salian metode saderhana ieu, aya cara sanés pikeun ngonpigurasikeun sertipikat sareng profil. Janten, upami anjeun damel béda, anjeun panginten kedah adaptasi. Hal pangpentingna nyaéta yén anjeun peryogi konfigurasi .xcodebuild
, nu bakal nunjuk ka file perlu, sarta keychain kudu sadia dina ngawangun komputer pikeun pamaké handapeun ngaran runner nu ngajalankeun. Pikeun tanda tangan digital kami nganggo fastlane, sareng upami aya masalah atanapi anjeun hoyong terang langkung seueur, pariksa detilna
Dina conto ieu kuring nganggo pendekatan
Nyiapkeun GitLab sareng fastlane
Nyiapkeun CI Runner
Saatos ngumpulkeun sadaya data ieu, urang teraskeun kana konfigurasi runner GitLab dina alat MacOS. Hanjakalna, anjeun ngan ukur tiasa ngadamel aplikasi ios dina MacOS. Tapi sagalana bisa ngarobah, sarta lamun nyangka kamajuan di wewengkon ieu, tetep hiji panon on proyék kawas
Nyetél runner basajan pisan. Turutan ayeuna
Catetan. Pelari kedah nganggo program anu tiasa dieksekusi shell
. Ieu diperlukeun pikeun ngawangun ios dina macOS pikeun dianggo langsung salaku pamaké tinimbang ngaliwatan peti. Upami anjeun nganggo shell
, Gedong sareng uji dilaksanakeun salaku pangguna runner, langsung dina host ngawangun. Éta henteu aman sapertos wadah, janten langkung saé ngotéktak
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
Apple Keychain kudu ngonpigurasi dina host ieu kalawan aksés ka kenop nu Xcode perlu ngawangun. Cara panggampangna pikeun nguji ieu nyaéta log in salaku pangguna anu bakal ngajalankeun ngawangun sareng nyobian ngawangun sacara manual. Lamun sistem ménta aksés keychain, pilih Salawasna Ngidinan pikeun CI jalan. Éta patut lebet sareng ningali sababaraha saluran pipa anu munggaran pikeun mastikeun yén aranjeunna henteu naroskeun gantungan konci deui. Masalahna nyaéta Apple henteu ngagampangkeun urang ngagunakeun mode Otomatis, tapi saatos anjeun badé jalanna, sadayana bakal saé.
fastlane init
Pikeun nganggo fastlane dina proyék, jalankeun fastlane init
. Ngan nuturkeun
Dina diréktori proyék anjeun, jalankeun paréntah ieu:
xcode-select --install
sudo gem install fastlane -NV
# Alternatively using Homebrew
# brew cask install fastlane
fastlane init
fastlane bakal naroskeun konfigurasi dasar teras jieun folder fastlane dina proyék sareng tilu file:
1. fastlane/Appfile
Henteu aya anu rumit di dieu. Ngan pastikeun Apple ID jeung App ID anjeun bener.
app_identifier("com.vontrance.flappybird") # The bundle identifier of your app
apple_id("[email protected]") # Your Apple email address
2. fastlane/Fastfile
Fastfile
nangtukeun léngkah ngawangun. Kami nganggo seueur fitur anu diwangun dina fastlane, janten sadayana ogé jelas di dieu. Urang nyieun hiji garis nu narima sertipikat, ngalakukeun assembly jeung unggah ka TestFlight. Anjeun tiasa ngabagi prosés ieu kana tugas anu béda upami diperyogikeun. Sadaya operasi ieu (get_certificates
, get_provisioning_profile
, gym
и upload_to_testflight
) geus kaasup kana fastlane.
lampah get_certificates
и get_provisioning_profile
patali jeung pendekatan signing
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
Ieu mangrupikeun file pilihan, tapi kuring nyiptakeun sacara manual pikeun ngarobih diréktori kaluaran standar sareng nempatkeun kaluaran dina folder ayeuna. Ieu simplifies CI. Upami kabetot, baca ngeunaan gym
jeung parameter na di
https://docs.fastlane.tools/actions/gym/
urang .gitlab-ci.yml
Janten, kami gaduh runner CI pikeun proyék sareng kami siap nguji pipa. Hayu urang tingali naon anu urang gaduh .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
kalawan executing program shell
, ku kituna urang boga workspace bersih pikeun tiap assembly, tur saukur nelepon flappybuild
fastlane, sakumaha katingal di luhur. Hasilna, urang meunang assembly, signature na deployment tina assembly panganyarna dina TestFlight.
Urang ogé meunang artefak jeung simpen eta kalawan rakitan. Punten dicatet yén formatna .ipa
mangrupakeun laksana ARM ditandatanganan nu teu dijalankeun dina simulator nu. Upami anjeun hoyong kaluaran pikeun simulator, tambahkeun udagan ngawangun anu ngahasilkeun éta, teras lebetkeun kana jalur artefak.
variabel lingkungan lianna
Aya sababaraha variabel lingkungan di dieu anu ngajantenkeun sadayana jalan.
FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD
и FASTLANE_SESSION
Auténtikasi pikeun fastlane diperlukeun pikeun auténtikasi dina App Store sarta unggah ka TestFlight. Jang ngalampahkeun ieu, jieun kecap akses pikeun aplikasi anu bakal dianggo dina CI. Rincian
Upami anjeun gaduh auténtikasi dua faktor, jieun variabel FASTLANE_SESSION
(parentah aya).
FASTLANE_USER
и FASTLANE_PASSWORD
yen FASTLANE_USER
и FASTLANE_PASSWORD
. Rincian
dina kacindekan
Anjeun tiasa ningali kumaha eta sadayana jalan
Kuring miharep ieu mantuan sarta mere ilham anjeun pikeun digawekeun ku ios ngawangun dina proyék GitLab. Di dieu hiji deui CI_BUILD_ID
(pikeun ngawangun Incremental) ka
fitur cool sejen tina fastlane nyaeta
Béjakeun ka kami dina koméntar ngeunaan pangalaman anjeun sareng bagikeun ideu anjeun pikeun ningkatkeun GitLab pikeun pamekaran aplikasi ios.
sumber: www.habr.com