Ukushicilela izinhlelo zokusebenza ze-iOS ku-App Store nge-GitLab ne-fastlane

Ukushicilela izinhlelo zokusebenza ze-iOS ku-App Store nge-GitLab ne-fastlane

I-GitLab ene-fastlane iqoqa, isayinda futhi izishicilele kanjani izinhlelo zokusebenza ze-iOS ku-App Store.

Sisanda kuba nayo thumela mayelana nendlela yokwakha nokusebenzisa ngokushesha uhlelo lokusebenza lwe-Android nge-GitLab kanye umzila osheshayo. Lapha sizobona ukuthi singalakha futhi silusebenzise kanjani uhlelo lokusebenza lwe-iOS futhi silushicilele ku-TestFlight. Bheka ukuthi kupholile kanjani Ngenza ushintsho ku-iPad Pro nge-GitLab Web IDE, ngithatha umhlangano futhi ngithole isibuyekezo senguqulo yokuhlola yohlelo lokusebenza ku-iPad Pro efanayo lapho ngayithuthukisa khona.

Lapha sizothatha uhlelo lokusebenza olulula lwe-iOS ku-Swift, engiqophe naye ividiyo.

Amagama ambalwa mayelana nokucushwa kwe-Apple Store

Sizodinga uhlelo lokusebenza lwe-App Store, izitifiketi zokusabalalisa, nephrofayela yokuhlinzeka ukuze sihlanganise yonke into.

Into enzima kakhulu lapha ukusetha amalungelo okusayina ku-App Store. Ngethemba ukuthi ungazitholela lokhu ngokwakho. Uma umusha, ngizokukhomba endleleni efanele, kodwa ngeke sikhulume ngobunkimbinkimbi bokuphatha izitifiketi ze-Apple lapha, futhi zishintsha njalo. Lokhu okuthunyelwe kuzokusiza ukuthi uqalise.

Izinhlelo zami zokusebenza

Udinga uhlelo lokusebenza ku-App Store Connect ukuze ube ne-ID yokucushwa .xcodebuild. Iphrofayili kanye ne-ID yohlelo lokusebenza kuhlanganisa ukwakhiwa kwekhodi, intengo nokutholakala, kanye nokucushwa kwe-TestFlight kokusabalalisa izinhlelo zokusebenza zokuhlola kubasebenzisi. Ungakwenzi ukuhlola okusesidlangalaleni, ukuhlola okuyimfihlo kuzokwanela uma uneqembu elincane, ukusetha okulula, futhi ungadingi izimvume ezengeziwe ezivela kwa-Apple.

Iphrofayili yokuqalisa

Ngokungeziwe ekusethweni kohlelo lokusebenza, udinga okhiye bokusabalalisa nokuthuthukisa be-iOS abadalwe esigabeni Sezitifiketi, Izihlonzi namaphrofayela se-Apple Developer console. Zonke lezi zitifiketi zingahlanganiswa zibe iphrofayili yokuhlinzeka.

Abasebenzisi abazoqinisekiswa badinga ukwazi ukudala izitifiketi, ngaphandle kwalokho izinyathelo cert nokububula uzobona iphutha.

Okunye okukhethwa kukho

Ngaphandle kwale ndlela elula, kunezinye izindlela zokumisa izitifiketi namaphrofayili. Ngakho-ke, uma usebenza ngokuhlukile, kungase kudingeke uzivumelanise nezimo. Okubaluleke kakhulu ukuthi udinga ukucushwa .xcodebuild, ezokhomba amafayela adingekayo, futhi i-keychain kufanele itholakale kukhompuyutha yokwakha kumsebenzisi okugijima ngaphansi kwegama lakhe umgijimi. Ukuze uthole isiginesha yedijithali sisebenzisa i-fastlane, futhi uma kunezinkinga noma ufuna ukwazi okwengeziwe, hlola imininingwane yabo imibhalo mayelana namasiginesha edijithali.

Kulesi sibonelo ngisebenzisa indlela cert nokububula, kodwa ngokusetshenziswa kwangempela kungenzeka ifaneleka kangcono Fanisa.

Ilungiselela i-GitLab ne-fastlane

Ilungiselela i-CI Runner

Ngemva kokuqoqa yonke le datha, sidlulela ekucushweni komgijimi we-GitLab kudivayisi ye-MacOS. Ngeshwa, ungenza kuphela izinhlelo zokusebenza ze-iOS ku-MacOS. Kodwa konke kungashintsha, futhi uma ulindele inqubekelaphambili kule ndawo, gcina iso kumaphrojekthi afana xcbuilt и uphawu, nomsebenzi wethu wangaphakathi gitlab-ce#57576.

Ukusetha umgijimi kulula kakhulu. Landela okwakamuva imiyalo yokusetha i-GitLab Runner ku-macOS.

Qaphela. Umgijimi kufanele asebenzise uhlelo olusebenzisekayo shell. Lokhu kuyadingeka ukuze kwakhiwe i-iOS ku-macOS ukuze isebenze ngokuqondile njengomsebenzisi kunokusebenzisa iziqukathi. Uma usebenzisa shell, ukwakha nokuhlola kwenziwa njengomsebenzisi ogijimayo, ngokuqondile kumsingathi wokwakha. Ayivikelekile njengeziqukathi, ngakho-ke kungcono uphequlule amaphepha okuphephangakho awuphuthelwa lutho.

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 kufanele ilungiswe kulo msingathi ngokufinyelela okhiye i-Xcode edinga ukubakha. Indlela elula yokuhlola lokhu ukungena njengomsebenzisi ozosebenzisa isakhiwo bese uzama ukuyakha mathupha. Uma uhlelo lucela ukufinyelela kokhiye, khetha okuthi Hlala Uvumela ukuthi i-CI isebenze. Kungase kudingeke ukuba ungene futhi ubuke amapayipi ambalwa okuqala ukuze uqiniseke ukuthi awasakuceli uchungechunge lokhiye. Inkinga ukuthi i-Apple ayikwenzi kube lula ngathi ukusebenzisa i-Auto mode, kodwa uma usuyiqedile, konke kuzolunga.

i-fastlane init

Ukuze usebenzise i-fastlane kuphrojekthi, sebenzisa fastlane init. Vele ulandele imiyalelo yokufaka nokusebenzisa i-fastlane, ikakhulukazi esigabeni mayelana Gemfile, ngoba sidinga ukwethulwa okusheshayo nokungabikezelwa ngepayipi le-CI elizenzakalelayo.

Kuhla lwemibhalo yephrojekthi yakho, sebenzisa le miyalo:

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

i-fastlane izocela ukucushwa okuyisisekelo bese idala ifolda ye-fastlane kuphrojekthi enamafayela amathathu:

1. fastlane/Appfile

Akukho lutho oluyinkimbinkimbi lapha. Vele uqiniseke ukuthi i-ID yakho ye-Apple ne-ID yohlelo lokusebenza zilungile.

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

2. fastlane/Fastfile

Fastfile ichaza izinyathelo zokwakha. Sisebenzisa izici eziningi ezakhelwe ngaphakathi ze-fastlane, ngakho yonke into icacile nalapha. Sakha umugqa owodwa owamukela izitifiketi, senze ukuhlanganisa bese siwulayisha ku-TestFlight. Ungahlukanisa le nqubo ngemisebenzi ehlukene uma kunesidingo. Yonke le misebenzi (get_certificates, get_provisioning_profile, gym и upload_to_testflight) sezivele zifakiwe ku-fastlane.

Действия get_certificates и get_provisioning_profile okuhlobene nendlela yokusayina cert nokububula. Uma usebenzisa Fanisa noma yini, yenza izinguquko.

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

Leli ifayela lokuzikhethela, kodwa ngilidale ngokuzenzela ukuze ngiguqule uhla lwemibhalo oluzenzakalelayo bese ngibeka okukhiphayo kufolda yamanje. Lokhu kwenza i-CI ibe lula. Uma unentshisekelo, funda mayelana gym kanye nemingcele yayo ku imibhalo.

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

Ezethu .gitlab-ci.yml

Ngakho-ke, sinomgijimi we-CI wephrojekthi futhi sikulungele ukuhlola ipayipi. Ake sibone ukuthi yini 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

Все отлично! Setha ifomethi ku-UTF-8 ye-fastlane njengoba kudingeka, sebenzisa isu clone ngohlelo lokwenza shell, ukuze sibe nendawo yokusebenza ehlanzekile yomhlangano ngamunye, futhi simane sishaye ucingo flappybuild fastlane, njengoba kuboniswe ngenhla. Ngenxa yalokho, sithola ukuhlanganiswa, isiginesha nokuthunyelwa komhlangano wakamuva ku-TestFlight.

Siphinde sithole i-artifact futhi siyilondoloze nokuhlanganiswa. Sicela uqaphele ukuthi ifomethi .ipa iyi-ARM esayiniwe esebenzisekayo engasebenzisi kusifanisi. Uma ufuna okuphumayo kwesifanisi, vele ungeze impokophelo yokwakha eyikhiqizayo, bese ukuhlanganisa kundlela ye-artifact.

Okunye okuguquguqukayo kwemvelo

Kukhona okuguquguqukayo kwemvelo okumbalwa okwenza konke kusebenze.

FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD и FASTLANE_SESSION

Ukuqinisekisa kwe-fastlane kuyadingeka ukuze kugunyazwe ku-App Store futhi kulayishwe ku-TestFlight. Ukwenza lokhu, dala iphasiwedi yohlelo lokusebenza ezosetshenziswa ku-CI. Imininingwane lapha.

Uma unobuqiniso bezinto ezimbili, dala okuguquguqukayo FASTLANE_SESSION (iziqondiso lapho).

FASTLANE_USER и FASTLANE_PASSWORD

ukuthi cert nokububula ebizwa ngephrofayili yokuqalisa kanye nezitifiketi uma ucela, udinga ukusetha okuguquguqukayo FASTLANE_USER и FASTLANE_PASSWORD. Imininingwane lapha. Lokhu akudingekile uma usebenzisa indlela ehlukile yokusayina.

Ekuphethweni

Ungabona ukuthi konke kusebenza kanjani esibonelweni sami esilula.

Ngithemba ukuthi lokhu kube usizo futhi kukugqugquzele ukuthi usebenze ne-iOS yokwakha kuphrojekthi ye-GitLab. Nansi enye Amathiphu e-CI nge-fastlane, uma kwenzeka. Ungase ufune ukusebenzisa CI_BUILD_ID (ngokwakha okukhuphukayo) ukuze inguqulo yokwengeza ngokuzenzakalelayo.

Esinye isici esihle se-fastlane yi izithombe-skrini ezizenzakalelayo ye-App Store, okulula kakhulu ukuyisetha.

Sitshele kumazwana mayelana nolwazi lwakho futhi wabelane ngemibono yakho yokuthuthukisa i-GitLab yokuthuthukiswa kohlelo lokusebenza lwe-iOS.

Source: www.habr.com

Engeza amazwana