Ukupapasha ii-Apps ze-iOS kwiVenkile ye-App nge-GitLab kunye ne-fastlane

Ukupapasha ii-Apps ze-iOS kwiVenkile ye-App nge-GitLab kunye ne-fastlane

Indlela i-GitLab ene-fastlane eqokelela ngayo, isayine kwaye ipapashe usetyenziso lwe-iOS kwi-App Store.

Kutshanje siye safumana thumela malunga nendlela yokwakha ngokukhawuleza kwaye usebenzise isicelo se-Android ngeGitLab kunye isplane. Apha siza kubona indlela yokwakha nokusebenzisa i-app ye-iOS kwaye siyipapashe kwi-TestFlight. Jonga ukuba ipholile kangakanani Ndenza utshintsho kwi-iPad Pro nge-GitLab Web IDE, Ndithatha indibano kwaye ndifumane uhlaziyo kuguqulelo lovavanyo lwesicelo kwi-iPad Pro efanayo apho ndiphuhlise khona.

Apha siza kuthatha app elula iOS kwi Swift, endarekhoda naye ividiyo.

Amagama ambalwa malunga noqwalaselo lwe-Apple Store

Siza kudinga i-App Store app, izatifikethi zokusasaza, kunye neprofayile yolungiselelo ukuze sibophe yonke into kunye.

Eyona nto inzima apha kukuseta amalungelo okusayina kwi-App Store. Ndiyathemba ukuba ungazicingela ngokwakho oku. Ukuba umtsha, ndiza kukwalathisa kwicala elifanelekileyo, kodwa asizukuthetha malunga nobugocigoci bokulawula izatifikethi zika-Apple apha, kwaye zihlala zitshintsha. Esi sithuba siya kukunceda uqalise.

Iiapps zam

Udinga i-app kwi-App Store Connect ukuze ube ne-ID yoqwalaselo .xcodebuild. Iprofayili kunye ne-ID yesicelo idibanisa ikhowudi yokwakha, amaxabiso kunye nokufumaneka, kunye noqwalaselo lweTestFlight yokusabalalisa izicelo zovavanyo kubasebenzisi. Sukwenza uvavanyo lukawonke-wonke, uvavanyo lwabucala luya kwanela ukuba uneqela elincinane, ukuseta lula, kwaye awudingi mvume ezongezelelweyo kwi-Apple.

Iprofayile yokuqalisa

Ukongeza kulungiselelo lwe-app, udinga ukuhanjiswa kwe-iOS kunye nezitshixo zophuhliso ezenziwe kwicandelo leZatifikethi, izichongi kunye neeProfayili ze-Apple Developer console. Zonke ezi zatifikethi zinokudityaniswa zibe yiprofayili yobonelelo.

Abasebenzisi abaya kuqinisekiswa kufuneka bakwazi ukwenza izatifikethi, ngaphandle koko amanyathelo cert kunye nokuncwina uya kubona impazamo.

Ezinye iindlela

Ngaphandle kwale ndlela ilula, kukho ezinye iindlela zokuqwalasela izatifikethi kunye neeprofayili. Ke, ukuba usebenza ngokwahlukileyo, kuya kufuneka ulungelelanise. Eyona nto ibalulekileyo kukuba ufuna uqwalaselo .xcodebuild, eya kukhomba kwiifayile eziyimfuneko, kwaye i-keychain kufuneka ifumaneke kwikhompyutheni yokwakha kumsebenzisi ophantsi kwegama lakhe umgijimi osebenzayo. Utyikityo lwedijithali sisebenzisa i-fastlane, kwaye ukuba kukho iingxaki okanye ufuna ukwazi ngakumbi, jonga iinkcukacha zabo amaxwebhu malunga nemisayino yedijithali.

Kulo mzekelo ndisebenzisa indlela cert kunye nokuncwina, kodwa kusetyenziso lokwenene mhlawumbi ifaneleka ngakumbi komdlalo.

Ukulungiselela i-GitLab kunye ne-fastlane

Ukulungiselela i-CI Runner

Emva kokuba siqokelele yonke le datha, siqhubela phambili kuqwalaselo lomgijimi weGitLab kwisixhobo seMacOS. Ngelishwa, unokwenza kuphela usetyenziso lwe-iOS kwi-MacOS. Kodwa yonke into inokutshintsha, kwaye ukuba ulindele inkqubela phambili kule ndawo, gcina iliso kwiiprojekthi ezifana xcbuilt ΠΈ uphawu, kunye nomsebenzi wethu wangaphakathi gitlab-ce#57576.

Ukumisela umgijimi kulula kakhulu. Landela yangoku imiyalelo yokuseta i-GitLab Runner kwi-macOS.

Phawula. Imbaleki kufuneka isebenzise inkqubo ephunyeziweyo shell. Oku kuyafuneka ukwakha i-iOS kwi-macOS ukuze isebenze ngokuthe ngqo njengomsebenzisi kunokusebenzisa izitya. Ukuba usebenzisa shell, Ukwakhiwa kunye novavanyo lwenziwa njengomqhubi womqhubi, ngokuthe ngqo kwi-host host. Ayikhuselekanga njengezikhongozeli, ngoko kungcono ukukhangela amaxwebhu okhuselekongoko awuphoswa nto.

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

I-Apple Keychain kufuneka iqwalaselwe kulo mkhosi ngokufikelela kwizitshixo ekufuneka iXcode izakhe. Eyona ndlela ilula yokuvavanya oku kukungena njengomsebenzisi oza kuqhuba ukwakha kwaye uzame ukuyakha ngesandla. Ukuba inkqubo icela ufikelelo lwesitshixo, khetha Hlala uvumela ukuba iCI isebenze. Kunokuba kufanelekile ukungena kwaye ubukele isibini sokuqala semibhobho ukuze uqiniseke ukuba abasabuzi ikhonkco elitshixo. Ingxaki kukuba i-Apple ayenzi kube lula ngathi ukusebenzisa imowudi ye-Auto, kodwa nje ukuba ihambe, yonke into iya kulunga.

fastlane init

Ukusebenzisa i-fastlane kwiprojekthi, qhuba fastlane init. Landela nje imiyalelo yokufaka kunye nokuqhuba i-fastlane, ngakumbi kwicandelo malunga gemfile, kuba sifuna ukuqaliswa ngokukhawuleza kunye nokuqikelelwa ngombhobho weCI ozenzekelayo.

Kuluhlu lweprojekthi yakho, sebenzisa le miyalelo:

xcode-select --install
sudo gem install fastlane -NV
# Alternatively using Homebrew
# brew cask install fastlane
fastlane init

i-fastlane iyakucela uqwalaselo olusisiseko kwaye emva koko yenze ifolda ye-fastlane kwiprojekthi ngeefayile ezintathu:

1. fastlane/Appfile

Akukho nto inzima apha. Qiniseka nje ukuba i-ID yakho ye-Apple kunye ne-ID ye-App zichanekile.

app_identifier("com.vontrance.flappybird") # The bundle identifier of your app
apple_id("[email protected]") # Your Apple email address

2. fastlane/Fastfile

Fastfile ichaza amanyathelo okwakha. Sisebenzisa uninzi lwezinto ezakhelwe ngaphakathi ze-fastlane, ke yonke into icacile nalapha. Senza umgca omnye ofumana izatifikethi, wenze indibano kwaye uyilayishe kwiTestFlight. Unokwahlula le nkqubo kwimisebenzi eyahlukeneyo ukuba kuyimfuneko. Yonke le misebenzi (get_certificates, get_provisioning_profile, gym ΠΈ upload_to_testflight) sele zibandakanyiwe kwi-fastlane.

Izenzo get_certificates ΠΈ get_provisioning_profile ezinxulumene nendlela yokutyikitya cert kunye nokuncwina. Ukuba usebenzisa komdlalo okanye nantoni na, yenza utshintsho.

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

Le yifayile ekhethwayo, kodwa ndiyenze ngesandla ukutshintsha ulawulo lwemveliso olungagqibekanga kwaye ndibeke imveliso kulawulo lwangoku. Oku kwenza lula iCI. Ukuba unomdla, funda malunga gym kunye neeparamitha zayo ngaphakathi amaxwebhu.

https://docs.fastlane.tools/actions/gym/

Wethu .gitlab-ci.yml

Ngoko, sinomgijimi weCI weprojekthi kwaye sikulungele ukuvavanya umbhobho. Makhe sibone into esinayo .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

ВсС ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ! Siseta ifomathi kwi-UTF-8 ye-fastlane njengoko kufuneka, sebenzisa iqhinga clone ngokwenziwa kwenkqubo shell, ukuze sibe nendawo yokusebenzela ecocekileyo kwindibano nganye, kwaye ngokulula ufowunele flappybuild fastlane, njengoko kubonwe ngasentla. Ngenxa yoko, sifumana indibano, ukutyikitya kunye nokuthunyelwa kwendibano yamva nje kwiTestFlight.

Siphinde sifumane i-artifact kwaye siyigcine kunye nendibano. Nceda uqaphele ukuba ifomathi .ipa yi-ARM esayiniweyo ephunyeziweyo engasebenziyo kwisifanisi. Ukuba ufuna imveliso ye-simulator, yongeza nje into ekujoliswe kuyo yokwakha eyivelisayo, kwaye uyifake kwindlela ye-artifact.

Ezinye iinguqu zemo engqongileyo

Kukho iinguqu ezimbalwa zokusingqongileyo apha ezenza yonke into isebenze.

FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD ΠΈ FASTLANE_SESSION

Ukuqinisekiswa kwe-fastlane kuyafuneka ukuze kuqinisekiswe kwi-App Store kwaye ulayishe kwi-TestFlight. Ukwenza oku, yenza igama lokugqitha lesicelo esiza kusetyenziswa kwi-CI. Iinkcukacha apha.

Ukuba unobungqina bezinto ezimbini, yenza utshintsho FASTLANE_SESSION (imiyalelo apho).

FASTLANE_USER ΠΈ FASTLANE_PASSWORD

ukuba cert kunye nokuncwina ebizwa ngokuba yiprofayile yokuqalisa kunye nezatifikethi xa ucelile, kufuneka usete izinto eziguquguqukayo FASTLANE_USER ΠΈ FASTLANE_PASSWORD. Iinkcukacha apha. Oku akuyomfuneko ukuba usebenzisa indlela eyahlukileyo yokusayina.

Ekugqibeleni

Uyabona ukuba yonke into isebenza njani kumzekelo wam olula.

Ndiyathemba ukuba oku kube luncedo kwaye kukuphefumlele ukuba usebenze nge-iOS yokwakha kwiprojekthi yeGitLab. Nantsi enye Iingcebiso zeCI ye-fastlane, ukuba kunokwenzeka. Ungafuna ukusebenzisa CI_BUILD_ID (ulwakhiwo olongezelelweyo) ukuya uguqulelo olongezelelekileyo ngokuzenzekelayo.

Olunye uphawu olupholileyo lwe-fastlane lu skrini ezizenzekelayo yeApp Store, ekulula kakhulu ukuseta.

Sixelele kumagqabantshintshi malunga namava akho kwaye wabelane ngezimvo zakho zokuphucula iGitLab yophuhliso losetyenziso lwe-iOS.

umthombo: www.habr.com

Yongeza izimvo