Kako GitLab s fastlaneom prikuplja, potpisuje i objavljuje iOS aplikacije u App Storeu.
Nedavno smo imali
Ovdje ćemo uzeti
Nekoliko riječi o konfiguraciji Apple Storea
Trebat će nam aplikacija App Store, certifikati za distribuciju i profil za pružanje usluga da sve povežemo.
Najteža stvar ovdje je postavljanje prava potpisivanja u App Storeu. Nadam se da to možete sami shvatiti. Ako ste novi, uputit ću vas u pravom smjeru, ali ovdje nećemo govoriti o zamršenostima upravljanja Appleovim certifikatima, a oni se stalno mijenjaju. Ovaj će vam post pomoći da započnete.
Moje aplikacije
Trebate aplikaciju u App Store Connectu kako biste imali ID za konfiguraciju .xcodebuild
. Profil i ID aplikacije kombiniraju izradu koda, cijene i dostupnost te konfiguraciju TestFlighta za distribuciju testnih aplikacija korisnicima. Nemojte provoditi javno testiranje, privatno testiranje će biti dovoljno ako imate malu grupu, jednostavno postavljanje i ne trebate dodatna dopuštenja od Applea.
Profil inicijalizacije
Osim postavljanja aplikacije, potrebni su vam iOS distribucijski i razvojni ključevi kreirani u odjeljku Certifikati, identifikatori i profili konzole Apple Developer. Svi ovi certifikati mogu se kombinirati u profil za pružanje usluga.
Korisnici koji će biti autentificirani moraju moći izraditi certifikate, u suprotnom slijede koraci
druge opcije
Osim ove jednostavne metode, postoje i drugi načini za konfiguriranje certifikata i profila. Dakle, ako radite drugačije, možda ćete se morati prilagoditi. Najvažnije je da vam je potrebna konfiguracija .xcodebuild
, koji će upućivati na potrebne datoteke, a privjesak ključeva mora biti dostupan na računalu za izradu za korisnika pod čijim se imenom runner pokreće. Za digitalni potpis koristimo fastlane, a ako ima problema ili želite saznati više, provjerite njihove detalje
U ovom primjeru koristim pristup
Priprema GitLab i fastlane
Priprema CI Runner
Nakon što smo prikupili sve te podatke, prelazimo na konfiguraciju GitLab runnera na MacOS uređaju. Nažalost, iOS aplikacije možete izraditi samo na MacOS-u. Ali sve se može promijeniti, a očekujete li napredak na ovom području, obratite pažnju na projekte poput
Postavljanje trkača je vrlo jednostavno. Prati struju
Bilješka. Trkač mora koristiti izvršni program shell
. Ovo je potrebno za izgradnju iOS-a na macOS-u kako bi radio izravno kao korisnik, a ne kroz spremnike. Ako koristite shell
, izgradnja i testiranje izvode se kao korisnik pokretač, izravno na hostu za izgradnju. Nije tako siguran kao kontejneri, pa je bolje pregledavati
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 konfiguriran na ovom hostu s pristupom ključevima koje Xcode treba izgraditi. Najlakši način da to testirate je da se prijavite kao korisnik koji će pokrenuti izgradnju i pokušati je izgraditi ručno. Ako sustav traži pristup privjesku ključeva, odaberite Uvijek dopusti za rad CI-ja. Možda bi vrijedilo ući i promatrati prvih nekoliko cjevovoda kako bismo bili sigurni da više neće tražiti privjesak za ključeve. Problem je u tome što nam Apple ne olakšava korištenje automatskog načina rada, ali kad ga pokrenete, sve će biti u redu.
brza traka init
Da biste koristili fastlane u projektu, pokrenite fastlane init
. Samo prati
U direktoriju vašeg 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 i zatim stvoriti fastlane mapu u projektu s tri datoteke:
1. fastlane/Appfile
Ovdje nema ništa komplicirano. Samo provjerite jesu li vaš Apple ID i App ID točni.
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 puno ugrađenih značajki fastlanea, tako da je i ovdje sve jasno. Kreiramo jednu liniju koja prima certifikate, izvodi montažu i prenosi je na TestFlight. Ovaj proces možete podijeliti u različite zadatke ako je potrebno. Sve ove operacije (get_certificates
, get_provisioning_profile
, gym
и upload_to_testflight
) već su uključeni u fastlane.
Djelatnost get_certificates
и get_provisioning_profile
vezano za pristup potpisivanju
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 opcijska datoteka, ali izradio sam je ručno da promijenim zadani izlazni direktorij i smjestim izlaz u trenutnu mapu. Ovo pojednostavljuje CI. Ako ste zainteresirani, pročitajte gym
i njegove parametre u
https://docs.fastlane.tools/actions/gym/
Naša .gitlab-ci.yml
Dakle, imamo CI runner za projekt i spremni smo testirati cjevovod. Da vidimo što imamo unutra .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
Sve je u redu! clone
s izvršavanjem programa shell
, tako da imamo čist radni prostor za svaku montažu i jednostavno nazovite flappybuild
brza traka, kao što se vidi gore. Kao rezultat, dobivamo montažu, potpis i implementaciju najnovije montaže u TestFlightu.
Također dobivamo 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 za simulator, samo dodajte cilj izgradnje koji ga proizvodi, a zatim ga uključite u stazu artefakta.
Ostale varijable okruženja
Ovdje postoji nekoliko varijabli okruženja koje čine da sve funkcionira.
FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD
и FASTLANE_SESSION
Autentifikacija za fastlane potrebna je za autentifikaciju u App Storeu i prijenos na TestFlight. Da biste to učinili, stvorite lozinku za aplikaciju koja će se koristiti u CI-ju. pojedinosti
Ako imate dvofaktorsku provjeru autentičnosti, stvorite varijablu FASTLANE_SESSION
(upute tamo).
FASTLANE_USER
и FASTLANE_PASSWORD
Da FASTLANE_USER
и FASTLANE_PASSWORD
. pojedinosti
U zaključku
Možete vidjeti kako to sve funkcionira
Nadam se da vam je ovo bilo od pomoći i da vas je inspiriralo da radite s verzijama iOS-a u GitLab projektu. Evo još jednog CI_BUILD_ID
(za inkrementalne nadogradnje) to
Još jedna cool značajka fastlanea je
Recite nam u komentarima o svom iskustvu i podijelite svoje ideje za poboljšanje GitLaba za razvoj iOS aplikacija.
Izvor: www.habr.com