Kuchapisha programu za iOS kwenye Duka la Programu na GitLab na fastlane

Kuchapisha programu za iOS kwenye Duka la Programu na GitLab na fastlane

Jinsi GitLab iliyo na fastlane inavyokusanya, kusaini na kuchapisha programu za iOS kwenye Duka la Programu.

Hivi majuzi tulikuwa nayo Chapisha kuhusu jinsi ya kuunda na kuendesha programu ya Android kwa haraka na GitLab na haraka. Hapa tutaona jinsi ya kuunda na kuendesha programu ya iOS na kuichapisha kwenye TestFlight. Angalia jinsi ilivyo baridi Ninafanya mabadiliko kwenye iPad Pro na GitLab Web IDE, Ninachukua mkusanyiko na kupata sasisho kwa toleo la jaribio la programu kwenye iPad Pro sawa ambapo niliitengeneza.

Hapa tutachukua programu rahisi ya iOS kwenye Swift, ambaye nilirekodi naye video.

Maneno machache kuhusu usanidi wa Duka la Apple

Tutahitaji programu ya Duka la Programu, vyeti vya usambazaji na wasifu wa utoaji ili kuunganisha kila kitu.

Jambo gumu zaidi hapa ni kusanidi haki za kusaini katika Duka la Programu. Natumai unaweza kubaini hili mwenyewe. Ikiwa wewe ni mpya, nitakuelekeza katika mwelekeo sahihi, lakini hatutazungumza juu ya ugumu wa kudhibiti cheti cha Apple hapa, na zinabadilika kila wakati. Chapisho hili litakusaidia kuanza.

Programu Zangu

Unahitaji programu katika App Store Connect ili uwe na kitambulisho cha kusanidi .xcodebuild. Kitambulisho cha wasifu na programu huchanganya miundo ya misimbo, bei na upatikanaji, na usanidi wa TestFlight kwa ajili ya kusambaza programu za majaribio kwa watumiaji. Usifanye majaribio ya umma, majaribio ya faragha yatatosha ikiwa una kikundi kidogo, usanidi rahisi, na hauitaji vibali vya ziada kutoka kwa Apple.

Wasifu wa uanzishaji

Kando na usanidi wa programu, unahitaji funguo za usambazaji na usanidi za iOS zilizoundwa katika sehemu ya Vyeti, Vitambulisho na Wasifu kwenye dashibodi ya Wasanidi Programu wa Apple. Vyeti hivi vyote vinaweza kuunganishwa kuwa wasifu wa utoaji.

Watumiaji ambao watathibitishwa wanahitaji kuwa na uwezo wa kuunda vyeti, vinginevyo hatua cert na sigh utaona kosa.

chaguzi nyingine

Kando na njia hii rahisi, kuna njia zingine za kusanidi vyeti na wasifu. Kwa hivyo, ikiwa unafanya kazi tofauti, unaweza kulazimika kuzoea. Jambo muhimu zaidi ni kwamba unahitaji usanidi .xcodebuild, ambayo itaelekeza kwenye faili zinazohitajika, na mnyororo wa ufunguo lazima upatikane kwenye kompyuta ya kujenga kwa mtumiaji ambaye chini ya jina lake mkimbiaji anaendesha. Kwa saini ya dijiti tunatumia fastlane, na ikiwa kuna shida au unataka kujua zaidi, angalia maelezo yao hati kuhusu saini za dijiti.

Katika mfano huu ninatumia mbinu cert na sigh, lakini kwa matumizi halisi pengine inafaa zaidi mechi.

Kuandaa GitLab na fastlane

Kuandaa CI Runner

Baada ya kukusanya data hii yote, tunaendelea na usanidi wa kiendeshaji cha GitLab kwenye kifaa cha MacOS. Kwa bahati mbaya, unaweza tu kutengeneza programu za iOS kwenye MacOS. Lakini kila kitu kinaweza kubadilika, na ikiwa unatarajia maendeleo katika eneo hili, endelea kutazama miradi kama hiyo xcjenga ΠΈ ishara, na kazi yetu ya ndani gitlab-ce#57576.

Kuweka mkimbiaji ni rahisi sana. Fuata mkondo wa sasa maagizo ya kusanidi GitLab Runner kwenye macOS.

Kumbuka. Mkimbiaji lazima atumie programu inayoweza kutekelezwa shell. Hii inahitajika ili kuunda iOS kwenye macOS kufanya kazi moja kwa moja kama mtumiaji badala ya kupitia vyombo. Ikiwa unatumia shell, ujenzi na majaribio hufanywa kama mtumiaji anayeendesha, moja kwa moja kwenye seva pangishi ya ujenzi. Sio salama kama vyombo, kwa hivyo bora kuvinjari nyaraka za usalamaili usikose chochote.

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 lazima isanidiwe kwenye seva pangishi hii na ufikiaji wa funguo ambazo Xcode inahitaji kuunda. Njia rahisi ya kujaribu hii ni kuingia kama mtumiaji ambaye ataendesha ujenzi na kujaribu kuijenga mwenyewe. Ikiwa mfumo unaomba ufikiaji wa mnyororo wa vitufe, chagua Ruhusu Kila wakati kwa CI kufanya kazi. Huenda ikafaa kuingia na kutazama mabomba kadhaa ya kwanza ili kuhakikisha kuwa hayaulizi mnyororo wa vitufe tena. Shida ni kwamba Apple haifanyi iwe rahisi kwetu kutumia Modi ya Kiotomatiki, lakini ukishaifanya, kila kitu kitakuwa sawa.

fastlane init

Ili kutumia fastlane katika mradi, endesha fastlane init. Fuata tu maagizo ya kufunga na kuendesha fastlane, hasa katika sehemu kuhusu Faili za vito, kwa sababu tunahitaji uzinduzi wa haraka na unaoweza kutabirika kupitia bomba la kiotomatiki la CI.

Katika saraka ya mradi wako, endesha amri hizi:

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

fastlane itauliza usanidi wa kimsingi na kisha kuunda folda ya fastlane kwenye mradi na faili tatu:

1. fastlane/Appfile

Hakuna kitu ngumu hapa. Hakikisha tu Kitambulisho chako cha Apple na Kitambulisho cha Programu ni sahihi.

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

2. fastlane/Fastfile

Fastfile inafafanua hatua za ujenzi. Tunatumia vipengele vingi vilivyojengewa ndani vya fastlane, kwa hivyo kila kitu kiko wazi hapa pia. Tunaunda laini moja inayopokea vyeti, kufanya mkusanyiko na kuipakia kwenye TestFlight. Unaweza kugawanya mchakato huu katika kazi tofauti ikiwa ni lazima. Operesheni hizi zote (get_certificates, get_provisioning_profile, gym ΠΈ upload_to_testflight) tayari zimejumuishwa kwenye fastlane.

Shughuli get_certificates ΠΈ get_provisioning_profile kuhusiana na mbinu ya kusaini cert na sigh. Ikiwa unatumia mechi au chochote, fanya mabadiliko.

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

Hii ni faili ya hiari, lakini niliiunda kwa mikono ili kubadilisha saraka ya pato chaguo-msingi na kuweka pato kwenye folda ya sasa. Hii hurahisisha CI. Ikiwa nia, soma kuhusu gym na vigezo vyake ndani nyaraka.

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

Yetu .gitlab-ci.yml

Kwa hivyo, tuna mkimbiaji wa CI wa mradi na tuko tayari kujaribu bomba. Wacha tuone kile tulicho nacho .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

Kila kitu! Tunaweka umbizo la UTF-8 kwa fastlane inavyohitajika, tumia mkakati clone na programu ya utekelezaji shell, ili tuwe na nafasi safi ya kazi kwa kila kusanyiko, na piga simu tu flappybuild fastlane, kama inavyoonekana hapo juu. Kwa hivyo, tunapata mkusanyiko, saini na utumiaji wa mkusanyiko wa hivi punde katika TestFlight.

Pia tunapata mabaki na kuihifadhi na mkusanyiko. Tafadhali kumbuka kuwa muundo .ipa ni ARM iliyotiwa saini inayoweza kutekelezeka ambayo haifanyi kazi katika kiigaji. Ikiwa unataka pato la simulator, ongeza tu lengo la kujenga ambalo linaizalisha, na kisha ujumuishe kwenye njia ya kisanii.

Vigezo vingine vya mazingira

Kuna anuwai ya anuwai ya mazingira hapa ambayo hufanya kila kitu kufanya kazi.

FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD ΠΈ FASTLANE_SESSION

Uthibitishaji wa fastlane unahitajika ili kuthibitisha katika Duka la Programu na kupakia kwenye TestFlight. Ili kufanya hivyo, tengeneza nenosiri la programu ambayo itatumika katika CI. Maelezo hapa.

Ikiwa una uthibitishaji wa sababu mbili, tengeneza tofauti FASTLANE_SESSION (maelekezo hapo).

FASTLANE_USER ΠΈ FASTLANE_PASSWORD

Hiyo cert na sigh inayoitwa wasifu wa uanzishaji na vyeti juu ya ombi, unahitaji kuweka vigezo FASTLANE_USER ΠΈ FASTLANE_PASSWORD. Maelezo hapa. Hii si lazima ikiwa unatumia mbinu tofauti ya kutia sahihi.

Kwa kumalizia

Unaweza kuona jinsi yote yanavyofanya kazi katika mfano wangu rahisi.

Natumai hii ilikuwa ya msaada na ilikuhimiza kufanya kazi na iOS hujenga katika mradi wa GitLab. Hili hapa lingine Vidokezo vya CI kwa fastlane, ikiwa tu. Unaweza kutaka kutumia CI_BUILD_ID (kwa ajili ya ujenzi wa nyongeza) kwa toleo la kuongeza kiotomatiki.

Kipengele kingine cha baridi cha fastlane ni viwambo otomatiki kwa Hifadhi ya Programu, ambayo ni rahisi sana kusanidi.

Tuambie kwenye maoni kuhusu matumizi yako na ushiriki mawazo yako ya kuboresha GitLab ya ukuzaji wa programu ya iOS.

Chanzo: mapenzi.com

Kuongeza maoni