Kif GitLab mal-fastlane jiġbor, jiffirma u jippubblika applikazzjonijiet tal-iOS fl-App Store.
Dan l-aħħar kellna
Hawnhekk se nieħdu
Ftit kliem dwar il-konfigurazzjoni tal-Apple Store
Ikollna bżonn app tal-App Store, ċertifikati ta’ distribuzzjoni, u profil ta’ proviżjonament biex jorbtu kollox flimkien.
L-iktar ħaġa diffiċli hawnhekk hija t-twaqqif tad-drittijiet tal-iffirmar fl-App Store. Nittama li tista 'tikseb dan għalik innifsek. Jekk int ġdid, jien ser nippuntak fid-direzzjoni t-tajba, iżda aħna mhux se nitkellmu dwar l-intricacies tal-ġestjoni taċ-ċertifikati Apple hawn, u qed jinbidlu kontinwament. Din il-kariga tgħinek tibda.
L-Apps Tiegħi
Għandek bżonn app fl-App Store Connect sabiex ikollok ID għall-konfigurazzjoni .xcodebuild
. Il-profil u l-ID tal-applikazzjoni jikkombinaw il-bini tal-kodiċi, l-ipprezzar u d-disponibbiltà, u l-konfigurazzjoni TestFlight għad-distribuzzjoni tal-applikazzjonijiet tat-test lill-utenti. M'għandekx tagħmel ittestjar pubbliku, l-ittestjar privat ikun biżżejjed jekk għandek grupp żgħir, setup faċli, u m'għandekx bżonn permessi addizzjonali minn Apple.
Profil tal-inizjalizzazzjoni
Minbarra s-setup tal-app, għandek bżonn ċwievet tad-distribuzzjoni u tal-iżvilupp tal-iOS maħluqa fit-taqsima Ċertifikati, Identifikaturi u Profili tal-console tal-Apple Developer. Dawn iċ-ċertifikati kollha jistgħu jingħaqdu fi profil ta' forniment.
Utenti li se jiġu awtentikati jeħtieġ li jkunu jistgħu joħolqu ċertifikati, inkella l-passi
għażliet oħra
Minbarra dan il-metodu sempliċi, hemm modi oħra biex jiġu kkonfigurati ċertifikati u profili. Allura, jekk taħdem b'mod differenti, jista 'jkollok tadatta. L-iktar ħaġa importanti hija li għandek bżonn konfigurazzjoni .xcodebuild
, li se jindikaw il-fajls meħtieġa, u l-keychain għandu jkun disponibbli fuq il-kompjuter tal-bini għall-utent li taħt ismu qed jaħdem ir-runner. Għall-firma diġitali nużaw fastlane, u jekk ikun hemm problemi jew trid tkun taf aktar, ara d-dettalji tagħhom
F'dan l-eżempju qed nuża l-approċċ
Nipprepara GitLab u fastlane
Tħejjija CI Runner
Wara li ġabar din id-dejta kollha, ngħaddu għall-konfigurazzjoni tar-runner GitLab fuq l-apparat MacOS. Sfortunatament, tista 'tagħmel biss apps tal-iOS fuq MacOS. Imma kollox jista’ jinbidel, u jekk tistenna progress f’dan il-qasam, żomm għajnejk fuq proġetti bħal
It-twaqqif tar-runner huwa sempliċi ħafna. Segwi l-kurrent
Nota. Ir-runner għandu juża programm eżekutibbli shell
. Dan huwa meħtieġ biex jinbena iOS fuq macOS biex jaħdem direttament bħala utent aktar milli permezz ta 'kontenituri. Jekk qed tuża shell
, il-bini u l-ittestjar huma mwettqa bħala l-utent runner, direttament fuq il-bini ospitanti. Mhuwiex sikur daqs il-kontenituri, għalhekk aħjar jibbrawżjaw
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 għandu jiġi kkonfigurat fuq dan il-host b'aċċess għaċ-ċwievet li Xcode jeħtieġ li jibni. L-eħfef mod biex tittestja dan huwa li tidħol bħala l-utent li se jmexxi l-bini u jipprova jibniha manwalment. Jekk is-sistema titlob aċċess għall-keychain, agħżel Dejjem Ħalli biex CI taħdem. Jista 'jkun ta' min jidħol u tara l-ewwel koppja ta 'pipelines biex tiżgura li ma jitolbux aktar il-keychain. L-inkwiet huwa li Apple ma tagħmilhiex faċli għalina li nużaw il-modalità Awtomatika, iżda ladarba tibda, kollox ikun tajjeb.
fastlane init
Biex tuża fastlane fi proġett, mexxi fastlane init
. Sempliċement segwi
Fid-direttorju tal-proġett tiegħek, mexxi dawn il-kmandi:
xcode-select --install
sudo gem install fastlane -NV
# Alternatively using Homebrew
# brew cask install fastlane
fastlane init
fastlane se jitlob konfigurazzjoni bażika u mbagħad joħloq folder fastlane fil-proġett bi tliet fajls:
1. fastlane/Appfile
M'hemm xejn ikkumplikat hawn. Kun żgur li l-Apple ID u l-App ID tiegħek huma korretti.
app_identifier("com.vontrance.flappybird") # The bundle identifier of your app
apple_id("[email protected]") # Your Apple email address
2. fastlane/Fastfile
Fastfile
jiddefinixxi l-passi tal-bini. Aħna nużaw ħafna karatteristiċi integrati ta 'fastlane, għalhekk kollox huwa ċar hawn ukoll. Noħolqu linja waħda li tirċievi ċertifikati, twettaq l-assemblaġġ u ttellagħha fuq TestFlight. Tista' taqsam dan il-proċess f'kompiti differenti jekk meħtieġ. Dawn l-operazzjonijiet kollha (get_certificates
, get_provisioning_profile
, gym
и upload_to_testflight
) diġà huma inklużi fil-fastlane.
Attività get_certificates
и get_provisioning_profile
relatati mal-approċċ tal-iffirmar
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
Dan huwa fajl fakultattiv, imma ħloqtha manwalment biex tibdel id-direttorju tal-output default u poġġi l-output fil-folder attwali. Dan jissimplifika CI. Jekk interessat, aqra dwar gym
u l-parametri tagħha fil
https://docs.fastlane.tools/actions/gym/
Tagħna .gitlab-ci.yml
Allura, għandna CI runner għall-proġett u aħna lesti biex nittestjaw il-pipeline. Ejja naraw x'għandna fih .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
bl-eżekuzzjoni tal-programm shell
, sabiex ikollna spazju tax-xogħol nadif għal kull assemblaġġ, u sempliċement iċempel flappybuild
fastlane, kif jidher hawn fuq. Bħala riżultat, niksbu l-assemblaġġ, il-firma u l-iskjerament tal-aħħar assemblaġġ f'TestFlight.
Aħna wkoll nikseb l-artifact u nissejvjah mal-assemblaġġ. Jekk jogħġbok innota li l-format .ipa
huwa eżekutibbli ARM iffirmat li ma jaħdimx fis-simulatur. Jekk trid output għas-simulatur, żid biss il-mira tal-bini li tipproduċiha, u mbagħad inkludiha fit-triq tal-artifact.
Varjabbli ambjentali oħra
Hemm ftit varjabbli ambjentali hawn li jagħmlu kollox jaħdem.
FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD
и FASTLANE_SESSION
L-awtentikazzjoni għall-fastlane hija meħtieġa biex tivverifika fl-App Store u ttella’ fuq TestFlight. Biex tagħmel dan, oħloq password għall-applikazzjoni li se tintuża fis-CI. Dettalji
Jekk għandek awtentikazzjoni b'żewġ fatturi, oħloq varjabbli FASTLANE_SESSION
(struzzjonijiet hemmhekk).
FASTLANE_USER
и FASTLANE_PASSWORD
Li FASTLANE_USER
и FASTLANE_PASSWORD
. Dettalji
Bħala konklużjoni
Tista 'tara kif jaħdem kollox
Nittama li dan kien ta 'għajnuna u ispirak biex taħdem ma' iOS builds fi proġett GitLab. Hawn ieħor CI_BUILD_ID
(għal bini inkrementali) to
Fattur ieħor jibred ta 'fastlane huwa
Għidilna fil-kummenti dwar l-esperjenza tiegħek u aqsam l-ideat tiegħek għat-titjib tal-iżvilupp tal-app GitLab għall-iOS.
Sors: www.habr.com