
Kif GitLab mal-fastlane jiġbor, jiffirma u jippubblika applikazzjonijiet tal-iOS fl-App Store.
Dan l-aħħar kellna ma GitLab u . Hawnhekk se naraw kif nibnu u tħaddem app għall-iOS u nippubblikawha fuq TestFlight. Iċċekkja kemm hu frisk , nieħu l-assemblaġġ u nikseb aġġornament għall-verżjoni tat-test tal-applikazzjoni fuq l-istess iPad Pro fejn żviluppajtha.
Hawnhekk se nieħdu , li magħhom irreġistrajt il-video.
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 se tara żball.
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ċċ , iżda għall-użu reali huwa probabbilment aktar adattat .
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 и , u l-kompitu intern tagħna .
It-twaqqif tar-runner huwa sempliċi ħafna. Segwi l-kurrent .
Nota. Ir-runner għandu juża programm eżekutibbli shellDan huwa meħtieġ għall-bini tal-iOS fi macOSbiex taħdem direttament bħala utent, aktar milli permezz ta' kontejners. Jekk 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 sabiex ma titlifx xejn.
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 startApple 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 , speċjalment fit-taqsima dwar , għaliex għandna bżonn tnedija veloċi u prevedibbli permezz ta 'pipeline CI awtomatizzat.
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 initfastlane 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("your-email@your-domain.com") # Your Apple email address2. 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 . Jekk qed tuża jew tkun xi tkun, agħmel bidliet.
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
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Все отлично! , uża strateġija 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 imsejjaħ il-profil tal-inizjalizzazzjoni u ċ-ċertifikati fuq talba, għandek bżonn tissettja l-varjabbli FASTLANE_USER и FASTLANE_PASSWORD. Dettalji . Dan mhux meħtieġ jekk qed tuża metodu ta' ffirmar differenti.
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 għal fastlane, fil-każ. Inti tista 'tixtieq li tuża CI_BUILD_ID (għal bini inkrementali) to .
Fattur ieħor jibred ta 'fastlane huwa għall-App Store, li huma faċli ħafna biex jitwaqqfu.
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
