Il-pubblikazzjoni tal-Apps tal-iOS fl-App Store b'GitLab u fastlane

Il-pubblikazzjoni tal-Apps tal-iOS fl-App Store b'GitLab u fastlane

Kif GitLab mal-fastlane jiġbor, jiffirma u jippubblika applikazzjonijiet tal-iOS fl-App Store.

Dan l-aħħar kellna post dwar kif malajr tibni u tħaddem applikazzjoni Android ma GitLab u korsija mgħaġġla. Hawnhekk se naraw kif nibnu u tħaddem app għall-iOS u nippubblikawha fuq TestFlight. Iċċekkja kemm hu frisk Qed nagħmel bidla fuq iPad Pro b'GitLab Web IDE, 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 app sempliċi tal-iOS fuq Swift, 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 cert u daqqa 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 dokumentazzjoni dwar firem diġitali.

F'dan l-eżempju qed nuża l-approċċ cert u daqqa, iżda għall-użu reali huwa probabbilment aktar adattat jaqblu.

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 xcbuild и sinjal, u l-kompitu intern tagħna gitlab-ce#57576.

It-twaqqif tar-runner huwa sempliċi ħafna. Segwi l-kurrent istruzzjonijiet għat-twaqqif ta’ GitLab Runner fuq macOS.

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 dokumentazzjoni tas-sigurtà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 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 istruzzjonijiet għall-installazzjoni u t-tħaddim tal-fastlane, speċjalment fit-taqsima dwar Gemfile, 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 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 cert u daqqa. Jekk qed tuża jaqblu 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
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 dokumentazzjoni.

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

Все отлично! Aħna nissettjaw il-format għal UTF-8 għal fastlane kif meħtieġ, 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 hawn.

Jekk għandek awtentikazzjoni b'żewġ fatturi, oħloq varjabbli FASTLANE_SESSION (struzzjonijiet hemmhekk).

FASTLANE_USER и FASTLANE_PASSWORD

Li cert u daqqa imsejjaħ il-profil tal-inizjalizzazzjoni u ċ-ċertifikati fuq talba, għandek bżonn tissettja l-varjabbli FASTLANE_USER и FASTLANE_PASSWORD. Dettalji hawn. Dan mhux meħtieġ jekk qed tuża metodu ta' ffirmar differenti.

Bħala konklużjoni

Tista 'tara kif jaħdem kollox fl-eżempju sempliċi tiegħi.

Nittama li dan kien ta 'għajnuna u ispirak biex taħdem ma' iOS builds fi proġett GitLab. Hawn ieħor CI tips għal fastlane, fil-każ. Inti tista 'tixtieq li tuża CI_BUILD_ID (għal bini inkrementali) to awtomatikament inkrement verżjoni.

Fattur ieħor jibred ta 'fastlane huwa screenshots awtomatiċi 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

Żid kumment