Kako GitLab s Fastlane zbira, podpisuje in objavlja iOS aplikacije v App Store.
Pred kratkim smo imeli
Tukaj bomo vzeli
Nekaj besed o konfiguraciji Apple Store
Potrebovali bomo aplikacijo App Store, distribucijska potrdila in profil za zagotavljanje, da vse povežemo skupaj.
Najtežja stvar pri tem je nastavitev pravic za podpisovanje v App Store. Upam, da lahko to ugotovite sami. Če ste novi, vas bom usmeril v pravo smer, vendar tukaj ne bomo govorili o zapletenosti upravljanja potrdil Apple, ki se nenehno spreminjajo. Ta objava vam bo pomagala začeti.
Moje aplikacije
Potrebujete aplikacijo v App Store Connect, da imate ID za konfiguracijo .xcodebuild
. Profil in ID aplikacije združujeta gradnje kode, cene in razpoložljivost ter konfiguracijo TestFlight za distribucijo testnih aplikacij uporabnikom. Ne izvajajte javnega testiranja, zasebno testiranje bo zadostovalo, če imate majhno skupino, preprosto nastavitev in ne potrebujete dodatnih dovoljenj podjetja Apple.
Inicializacijski profil
Poleg nastavitve aplikacije potrebujete distribucijske in razvojne ključe za iOS, ustvarjene v razdelku Certifikati, identifikatorji in profili konzole Apple Developer. Vsa ta potrdila je mogoče združiti v profil zagotavljanja.
Uporabniki, ki bodo preverjeni, morajo imeti možnost ustvariti potrdila, drugače pa korake
druge možnosti
Poleg te preproste metode obstajajo tudi drugi načini za konfiguriranje potrdil in profilov. Torej, če delate drugače, se boste morda morali prilagoditi. Najpomembnejša stvar je, da potrebujete konfiguracijo .xcodebuild
, ki bo pokazal na potrebne datoteke, obesek ključev pa mora biti na voljo na računalniku za gradnjo za uporabnika, pod imenom katerega se izvaja tekač. Za digitalni podpis uporabljamo fastlane, če pa se pojavijo težave ali želite izvedeti več, si oglejte njihove podrobnosti
V tem primeru uporabljam pristop
Priprava GitLab in fastlane
Priprava CI Runnerja
Ko zberemo vse te podatke, preidemo na konfiguracijo izvajalca GitLab v napravi MacOS. Na žalost lahko aplikacije za iOS izdelujete samo v sistemu MacOS. A vse se lahko spremeni in če pričakujete napredek na tem področju, bodite pozorni na projekte, kot je
Nastavitev tekača je zelo preprosta. Sledite toku
Opomba. Tekač mora uporabljati izvršljiv program shell
. To je potrebno za izgradnjo sistema iOS na macOS, da deluje neposredno kot uporabnik in ne prek vsebnikov. Če uporabljate shell
, gradnjo in testiranje izvajata kot uporabnik tekača, neposredno na gostitelju gradnje. Ni tako varen kot zabojniki, zato raje brskajte
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 tem gostitelju z dostopom do ključev, ki jih mora zgraditi Xcode. To najlažje preizkusite tako, da se prijavite kot uporabnik, ki bo zagnal gradnjo in jo poskusite zgraditi ročno. Če sistem zahteva dostop do obeska ključev, izberite Vedno dovoli, da CI deluje. Morda bi bilo vredno vstopiti in opazovati prvih nekaj cevovodov, da se prepričate, da ne bodo več zahtevali obeska za ključe. Težava je v tem, da nam Apple ne olajša uporabe samodejnega načina, a ko ga enkrat zaženete, bo vse v redu.
fastlane init
Če želite uporabiti fastlane v projektu, zaženite fastlane init
. Samo sledi
V imeniku vašega projekta zaženite te ukaze:
xcode-select --install
sudo gem install fastlane -NV
# Alternatively using Homebrew
# brew cask install fastlane
fastlane init
fastlane bo zahteval osnovno konfiguracijo in nato v projektu ustvaril mapo fastlane s tremi datotekami:
1. fastlane/Appfile
Tukaj ni nič zapletenega. Samo preverite, ali sta vaš Apple ID in App ID pravilna.
app_identifier("com.vontrance.flappybird") # The bundle identifier of your app
apple_id("[email protected]") # Your Apple email address
2. fastlane/Fastfile
Fastfile
določa korake gradnje. Uporabljamo veliko vgrajenih funkcij fastlane, tako da je tudi tukaj vse jasno. Ustvarimo eno vrstico, ki prejme certifikate, izvede sestavo in jo naloži v TestFlight. Ta postopek lahko po potrebi razdelite na različne naloge. Vse te operacije (get_certificates
, get_provisioning_profile
, gym
и upload_to_testflight
) so že vključeni v fastlane.
Dejavnost get_certificates
и get_provisioning_profile
povezanih s pristopom podpisovanja
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
To je izbirna datoteka, vendar sem jo ustvaril ročno, da spremenim privzeti izhodni imenik in postavim izhod v trenutno mapo. To poenostavlja CI. Če vas zanima, preberite o gym
in njegove parametre v
https://docs.fastlane.tools/actions/gym/
Ours .gitlab-ci.yml
Torej imamo izvajalca CI za projekt in pripravljeni smo preizkusiti cevovod. Poglejmo, kaj imamo notri .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 je v redu! clone
z izvajalnim programom shell
, tako da imamo čist delovni prostor za vsako montažo in preprosto pokličite flappybuild
fastlane, kot je prikazano zgoraj. Posledično dobimo sestavo, podpis in uvedbo najnovejše sestave v TestFlight.
Dobimo tudi artefakt in ga shranimo z montažo. Upoštevajte, da oblika .ipa
je podpisana izvršljiva datoteka ARM, ki se ne izvaja v simulatorju. Če želite izhod za simulator, preprosto dodajte cilj gradnje, ki ga ustvari, in ga nato vključite v pot artefakta.
Druge spremenljivke okolja
Tukaj je nekaj spremenljivk okolja, zaradi katerih vse deluje.
FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD
и FASTLANE_SESSION
Za preverjanje pristnosti v App Store in nalaganje v TestFlight je potrebna avtentikacija za Fastlane. Če želite to narediti, ustvarite geslo za aplikacijo, ki bo uporabljena v CI. Podrobnosti
Če imate dvostopenjsko avtentikacijo, ustvarite spremenljivko FASTLANE_SESSION
(navodila tam).
FASTLANE_USER
и FASTLANE_PASSWORD
To FASTLANE_USER
и FASTLANE_PASSWORD
. Podrobnosti
Na koncu
Lahko vidite, kako vse deluje
Upam, da je bilo to koristno in vas je navdihnilo za delo z različicami iOS v projektu GitLab. Tukaj je še ena CI_BUILD_ID
(za postopne gradnje) do
Še ena kul lastnost fastlanea je
V komentarjih nam povejte o svojih izkušnjah in delite svoje zamisli za izboljšanje GitLaba za razvoj aplikacij za iOS.
Vir: www.habr.com