Kaip „GitLab“ su „fastlane“ renka, pasirašo ir skelbia „iOS“ programas „App Store“.
Neseniai turėjome
Čia mes paimsime
Keletas žodžių apie Apple Store konfigūraciją
Mums reikės „App Store“ programos, platinimo sertifikatų ir aprūpinimo profilio, kad galėtume viską susieti.
Sunkiausias dalykas yra nustatyti pasirašymo teises „App Store“. Tikiuosi, kad galite tai išsiaiškinti patys. Jei esate naujokas, aš jus nukreipsiu teisinga kryptimi, tačiau apie Apple sertifikatų tvarkymo subtilybes čia nekalbėsime, o jie nuolat keičiasi. Šis įrašas padės jums pradėti.
Mano programėlės
Jums reikia programos „App Store Connect“, kad galėtumėte konfigūruoti ID .xcodebuild
. Profilis ir programos ID apjungia kodo kūrimą, kainas ir prieinamumą bei „TestFlight“ konfigūraciją, skirtą vartotojams platinti bandomąsias programas. Nedarykite viešo testavimo, privataus testavimo pakaks, jei turite nedidelę grupę, lengva nustatyti ir jums nereikia papildomų Apple leidimų.
Inicijavimo profilis
Be programos sąrankos, jums reikia iOS platinimo ir kūrimo raktų, sukurtų Apple Developer Console skiltyje Sertifikatai, identifikatoriai ir profiliai. Visi šie sertifikatai gali būti sujungti į aprūpinimo profilį.
Vartotojai, kurie bus autentifikuoti, turi turėti galimybę kurti sertifikatus, priešingu atveju atlikti veiksmus
kiti variantai
Be šio paprasto metodo, yra ir kitų būdų, kaip sukonfigūruoti sertifikatus ir profilius. Taigi, jei dirbsi kitaip, gali tekti prisitaikyti. Svarbiausia, kad jums reikia konfigūracijos .xcodebuild
, kuris nurodys reikiamus failus, o raktų pakabukas turi būti pasiekiamas kūrimo kompiuteryje vartotojui, kurio vardu veikia bėgikas. Skaitmeniniam parašui naudojame „Fastlane“, o jei kyla problemų ar norite sužinoti daugiau, pasidomėkite jų informacija
Šiame pavyzdyje aš naudoju metodą
„GitLab“ ir „fastlane“ paruošimas
CI Runner paruošimas
Surinkę visus šiuos duomenis, pereiname prie „GitLab“ bėgiko konfigūracijos „MacOS“ įrenginyje. Deja, „iOS“ programas galite kurti tik „MacOS“. Tačiau viskas gali pasikeisti, ir jei tikitės pažangos šioje srityje, stebėkite tokius projektus kaip
Bėgiko nustatymas yra labai paprastas. Sekite srovę
Pastaba. Bėgikas turi naudoti vykdomąją programą shell
. Tai būtina norint sukurti „iOS“ „macOS“, kad jis veiktų tiesiogiai kaip vartotojas, o ne per konteinerius. Jei naudojate shell
, kūrimas ir bandymai atliekami kaip bėgimo vartotojas, tiesiogiai kūrimo priegloboje. Jis nėra toks saugus kaip konteineriai, todėl geriau naršykite
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“ turi būti sukonfigūruotas šiame pagrindiniame kompiuteryje, turintis prieigą prie raktų, kuriuos reikia sukurti „Xcode“. Lengviausias būdas tai patikrinti – prisijungti kaip vartotojas, kuris vykdys kūrimą, ir bandys jį sukurti rankiniu būdu. Jei sistema prašo prieigos prie raktų pakabuko, pasirinkite Visada leisti, kad CI veiktų. Galbūt verta užeiti ir stebėti pirmuosius du kanalus, kad įsitikintumėte, jog jie daugiau neprašo raktų pakabuko. Bėda ta, kad „Apple“ nesuteikia mums lengvo automatinio režimo naudojimo, bet kai tik jį pradėsite, viskas bus gerai.
fastlane init
Norėdami projekte naudoti greitąją juostą, paleiskite fastlane init
. Tiesiog sek
Savo projekto kataloge paleiskite šias komandas:
xcode-select --install
sudo gem install fastlane -NV
# Alternatively using Homebrew
# brew cask install fastlane
fastlane init
„Fastlane“ paprašys pagrindinės konfigūracijos ir sukurs „Fastlane“ aplanką projekte su trimis failais:
1. fastlane/Appfile
Čia nėra nieko sudėtingo. Tiesiog įsitikinkite, kad jūsų Apple ID ir programos ID yra teisingi.
app_identifier("com.vontrance.flappybird") # The bundle identifier of your app
apple_id("[email protected]") # Your Apple email address
2. fastlane/Fastfile
Fastfile
apibrėžia kūrimo žingsnius. Naudojame daug „Fastlane“ integruotų funkcijų, todėl ir čia viskas aišku. Sukuriame vieną liniją, kuri gauna sertifikatus, atlieka surinkimą ir įkelia į TestFlight. Jei reikia, šį procesą galite padalyti į skirtingas užduotis. Visos šios operacijos (get_certificates
, get_provisioning_profile
, gym
и upload_to_testflight
) jau įtrauktos į greitąją juostą.
Veikla get_certificates
и get_provisioning_profile
susiję su pasirašymo būdu
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
Tai yra neprivalomas failas, bet aš jį sukūriau rankiniu būdu, kad pakeisčiau numatytąjį išvesties katalogą ir įdėčiau išvestį į dabartinį aplanką. Tai supaprastina CI. Jei domina, skaitykite apie gym
ir jo parametrus
https://docs.fastlane.tools/actions/gym/
Mūsų .gitlab-ci.yml
Taigi, mes turime projekto CI bėgiklį ir esame pasirengę išbandyti dujotiekį. Pažiūrėkime, ką turime .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
Visi puikiai! clone
su vykdoma programa shell
, kad turėtume švarią darbo vietą kiekvienam surinkimui, ir tiesiog paskambinkite flappybuild
greitoji juosta, kaip matyti aukščiau. Dėl to gauname naujausio „TestFlight“ rinkinio surinkimą, parašą ir įdiegimą.
Taip pat gauname artefaktą ir išsaugome jį surinkdami. Atkreipkite dėmesį, kad formatas .ipa
yra pasirašytas ARM vykdomasis failas, kuris neveikia simuliatoriuje. Jei norite simuliatoriaus išvesties, tiesiog pridėkite jį sukūrusį kūrimo tikslą ir įtraukite jį į artefakto kelią.
Kiti aplinkos kintamieji
Čia yra keletas aplinkos kintamųjų, dėl kurių viskas veikia.
FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD
и FASTLANE_SESSION
„Fastlane“ autentifikavimas reikalingas norint autentifikuoti „App Store“ ir įkelti į „TestFlight“. Norėdami tai padaryti, sukurkite programos, kuri bus naudojama CI, slaptažodį. Detalės
Jei turite dviejų veiksnių autentifikavimą, sukurkite kintamąjį FASTLANE_SESSION
(instrukcijos ten).
FASTLANE_USER
и FASTLANE_PASSWORD
Kad FASTLANE_USER
и FASTLANE_PASSWORD
. Detalės
užbaigiant
Galite pamatyti, kaip visa tai veikia
Tikiuosi, kad tai buvo naudinga ir įkvėpė jus dirbti su „iOS“ versijomis „GitLab“ projekte. Štai dar vienas CI_BUILD_ID
(laipsniško kūrimo atveju) į
Dar viena puiki „fastlane“ savybė yra
Komentaruose papasakokite apie savo patirtį ir pasidalykite idėjomis, kaip patobulinti „GitLab“, skirtą „iOS“ programų kūrimui.
Šaltinis: www.habr.com