Kako GitLab sa fastlane-om prikuplja, potpisuje i objavljuje iOS aplikacije u App Store-u.
Nedavno smo imali
Evo nas
Nekoliko riječi o konfiguraciji Apple Store-a
Trebat će nam aplikacija u App Store-u, certifikati o distribuciji i profil pružanja usluga da sve povežemo.
Najteže je ovdje postaviti dozvole za potpisivanje u App Store-u. Nadam se da ćete ovo sami shvatiti. Ako ste novi, uputit ću vas u pravom smjeru, ali ovdje nećemo govoriti o zamršenostima upravljanja Apple certifikatima, a oni se stalno mijenjaju. Ovaj post će vam pomoći da započnete.
Moje aplikacije
Potrebna vam je aplikacija u App Store Connect kako biste imali ID za konfiguraciju .xcodebuild
. Profil aplikacije i ID kombinuju izradu koda, cijene i dostupnost te TestFlight konfiguraciju za distribuciju testnih aplikacija korisnicima. Nemojte raditi javno testiranje, privatno testiranje je dovoljno ako imate malu grupu, jednostavno postavljanje i ne trebate dodatne dozvole od Apple-a.
Provisioning Profile
Pored podešavanja aplikacije, potrebni su vam iOS distributivni i razvojni ključevi kreirani u odjeljku Certifikati, identifikatori i profili na Apple Developer Console. Svi ovi certifikati mogu se kombinirati u profilu za proviziju.
Korisnicima koji će biti autentificirani potrebna je mogućnost kreiranja certifikata, inače koraci
druge opcije
Osim ove jednostavne metode, postoje i drugi načini za postavljanje certifikata i profila. Dakle, ako radite drugačije, možda ćete se morati prilagoditi. Ono što je najvažnije, trebat će vam konfiguracija .xcodebuild
, koji će ukazivati na potrebne datoteke, a privezak ključeva mora biti dostupan na build računaru za korisnika pod čijim imenom trkač radi. Koristimo fastlane za digitalno potpisivanje, a ako imate problema ili želite saznati više, pogledajte njihov detalj
U ovom primjeru koristim pristup
Priprema GitLaba i fastlanea
Priprema CI Runner-a
Nakon što smo prikupili sve ove podatke, prelazimo na konfiguraciju GitLab trkača na MacOS uređaju. Nažalost, pravljenje iOS aplikacija moguće je samo na MacOS-u. Ali sve se može promijeniti, a ako čekate napredak u ovoj oblasti, pratite projekte poput
Postavljanje trkača je vrlo jednostavno. Pratite ažurno
Bilješka. Trkač mora koristiti program za izvršavanje shell
. Ovo je potrebno za izgradnju iOS-a na macOS-u za rad direktno kao korisnik, a ne preko kontejnera. Ako koristite shell
, izgradnja i testiranje se obavljaju kao korisnik runnera, direktno na hostu izgradnje. Nije tako bezbedno kao kontejneri, pa je bolje da ga okrenete
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 mora biti postavljen na ovom hostu s pristupom ključevima koje Xcode treba da napravi. Najlakši način da ovo testirate je da se prijavite kao korisnik koji će pokrenuti gradnju i pokušati ručno da izgradi. Ako sistem traži pristup privjesku ključeva, odaberite "Uvijek dozvoli" da CI radi. Možda bi bilo vrijedno ući i pogledati prvi par cjevovoda kako bi bili sigurni da više ne traže privjesak za ključeve. Problem je u tome što nam Apple ne olakšava rad sa automatskim načinom rada, ali kada ga postavite, sve će biti u redu.
fastlane init
Da biste koristili fastlane u projektu, pokrenite fastlane init
. Samo prati
U direktoriju projekta pokrenite ove naredbe:
xcode-select --install
sudo gem install fastlane -NV
# Alternatively using Homebrew
# brew cask install fastlane
fastlane init
fastlane će zatražiti osnovnu konfiguraciju, a zatim kreirati fastlane folder u projektu sa tri datoteke:
1. fastlane/Appfile
Nema tu ništa komplikovano. Samo provjerite jesu li vaš Apple ID i App ID ispravni.
app_identifier("com.vontrance.flappybird") # The bundle identifier of your app
apple_id("[email protected]") # Your Apple email address
2. fastlane/Fastfile
Fastfile
definira korake izgradnje. Koristimo dosta ugrađenih funkcija fastlane-a, tako da je i ovdje sve jasno. Kreiramo jednu liniju koja prima certifikate, gradi je i postavlja na TestFlight. Po potrebi ovaj proces možete podijeliti na različite zadatke. Sve ove operacijeget_certificates
, get_provisioning_profile
, gym
и upload_to_testflight
) su već uključeni u fastlane.
Akcije get_certificates
и get_provisioning_profile
povezan sa pristupom potpisivanja
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
Ovo je opcionalna datoteka, ali sam je kreirao ručno da promijenim zadani izlazni direktorij i stavim izlaz u trenutnu mapu. Ovo pojednostavljuje CI. Ako ste zainteresovani, pročitajte o gym
i njegovi parametri u
https://docs.fastlane.tools/actions/gym/
Naša .gitlab-ci.yml
Dakle, imamo CI runner za projekat i spremni smo da testiramo cevovod. Hajde da vidimo šta imamo .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
Vse otlično! clone
sa izvršnim programom shell
tako da imamo čist radni prostor za svaku izgradnju i samo pozovite flappybuild
fastlane kao što se vidi gore. Kao rezultat, dobijamo sklapanje, potpis i implementaciju najnovijeg sklopa u TestFlight-u.
Dobijamo i artefakt i spremamo ga sa sklopom. Imajte na umu da format .ipa
je potpisana ARM izvršna datoteka koja se ne izvodi u simulatoru. Ako želite izlaz simulatora, samo dodajte cilj izgradnje koji ga proizvodi, a zatim ga uključite u putanju artefakta.
Druge varijable okruženja
Ovdje postoji nekoliko varijabli okruženja na kojima sve radi.
FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD
и FASTLANE_SESSION
Za autentifikaciju u App Store i otpremanje na TestFlight, potrebna vam je autentifikacija za fastlane. Da biste to učinili, kreirajte lozinku aplikacije koja će se koristiti u CI. Detalji
Ako imate dvofaktorsku autentifikaciju, kreirajte varijablu FASTLANE_SESSION
(tamo uputstva).
FASTLANE_USER
и FASTLANE_PASSWORD
da FASTLANE_USER
и FASTLANE_PASSWORD
... Detalji
U zaključku
Možete vidjeti kako sve funkcionira
Nadam se da je ovo bilo od pomoći i inspirisalo vas da radite sa iOS buildovima u GitLab projektu. Evo još jednog CI_BUILD_ID
(za inkrementalne gradnje) do
Još jedna cool karakteristika fastlanea je
Recite nam svoje iskustvo u komentarima i podijelite ideje za poboljšanje GitLab-a za razvoj iOS aplikacija.
izvor: www.habr.com