„iOS“ programų paskelbimas „App Store“ naudojant „GitLab“ ir „Fastlane“.

„iOS“ programų paskelbimas „App Store“ naudojant „GitLab“ ir „Fastlane“.

Kaip „GitLab“ su „fastlane“ renka, pasirašo ir skelbia „iOS“ programas „App Store“.

Neseniai turėjome įrašas apie tai, kaip greitai sukurti ir paleisti „Android“ programą su GitLab ir Greitoji juosta. Čia pamatysime, kaip sukurti ir paleisti „iOS“ programą bei paskelbti ją „TestFlight“. Pažiūrėkite, kaip tai šaunu Keičiu iPad Pro su GitLab Web IDE, imuosi surinkimo ir gaunu bandomosios programos versijos atnaujinimą tame pačiame iPad Pro, kuriame ją kūriau.

Čia mes paimsime paprasta „iOS“ programa „Swift“., su kuriuo įrašiau vaizdo įrašą.

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 įsitikinęs ir atsidusęs pamatysite klaidą.

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 dokumentai apie skaitmeninius parašus.

Šiame pavyzdyje aš naudoju metodą įsitikinęs ir atsidusęs, bet realiam naudojimui jis tikriausiai labiau tinka rungtynės.

„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 xcbuild и ženklas, ir mūsų vidinė užduotis gitlab-ce#57576.

Bėgiko nustatymas yra labai paprastas. Sekite srovę instrukcijos, kaip nustatyti „GitLab Runner“ sistemoje „macOS“..

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 saugos dokumentacijakad nieko nepraleistumėte.

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 „Fastlane“ diegimo ir naudojimo instrukcijos, ypač skyriuje apie Gemfile, nes mums reikia greito ir nuspėjamo paleidimo per automatizuotą CI dujotiekį.

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 įsitikinęs ir atsidusęs. Jei naudojate rungtynės ar bet ką, atlikite pakeitimus.

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 dokumentacija.

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! Pagal poreikį nustatome UTF-8 formatą „fastlane“., naudokite strategiją 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 čia.

Jei turite dviejų veiksnių autentifikavimą, sukurkite kintamąjį FASTLANE_SESSION (instrukcijos ten).

FASTLANE_USER и FASTLANE_PASSWORD

Kad įsitikinęs ir atsidusęs Paprašius vadinamas inicijavimo profiliu ir sertifikatais, turite nustatyti kintamuosius FASTLANE_USER и FASTLANE_PASSWORD. Detalės čia. Tai nėra būtina, jei naudojate kitą pasirašymo būdą.

užbaigiant

Galite pamatyti, kaip visa tai veikia mano paprastame pavyzdyje.

Tikiuosi, kad tai buvo naudinga ir įkvėpė jus dirbti su „iOS“ versijomis „GitLab“ projekte. Štai dar vienas CI patarimai „Fastlane“, tik tuo atveju. Galbūt norėsite naudoti CI_BUILD_ID (laipsniško kūrimo atveju) į automatiškai padidina versiją.

Dar viena puiki „fastlane“ savybė yra automatinės ekrano kopijos „App Store“, kurias labai lengva nustatyti.

Komentaruose papasakokite apie savo patirtį ir pasidalykite idėjomis, kaip patobulinti „GitLab“, skirtą „iOS“ programų kūrimui.

Šaltinis: www.habr.com

Добавить комментарий