Ako GitLab s fastlane zhromažďuje, podpisuje a publikuje iOS aplikácie v App Store.
Nedávno sme mali
Tu si vezmeme
Niekoľko slov o konfigurácii Apple Store
Budeme potrebovať aplikáciu App Store, distribučné certifikáty a profil poskytovania, aby sme všetko spojili.
Najťažšie je tu nastavenie podpisových práv v App Store. Dúfam, že na to prídete sami. Ak ste nový, nasmerujem vás správnym smerom, ale nebudeme sa tu baviť o zložitosti správy certifikátov Apple, ktorá sa neustále mení. Tento príspevok vám pomôže začať.
Moje aplikácie
Potrebujete aplikáciu v App Store Connect, aby ste mali ID na konfiguráciu .xcodebuild
. Profil a ID aplikácie kombinujú zostavy kódu, ceny a dostupnosť a konfiguráciu TestFlight na distribúciu testovacích aplikácií používateľom. Nerobte verejné testovanie, súkromné testovanie bude stačiť, ak máte malú skupinu, jednoduché nastavenie a nepotrebujete ďalšie povolenia od Apple.
Inicializačný profil
Okrem nastavenia aplikácie potrebujete distribučné a vývojové kľúče iOS vytvorené v sekcii Certifikáty, identifikátory a profily v konzole Apple Developer. Všetky tieto certifikáty je možné skombinovať do profilu poskytovania.
Používatelia, ktorí budú autentifikovaní, musia mať možnosť vytvárať certifikáty, inak postupujte podľa krokov
ďalšie možnosti
Okrem tejto jednoduchej metódy existujú aj iné spôsoby konfigurácie certifikátov a profilov. Ak teda pracujete inak, možno sa budete musieť prispôsobiť. Najdôležitejšia vec je, že potrebujete konfiguráciu .xcodebuild
, ktorý bude ukazovať na potrebné súbory a kľúčenka musí byť dostupná na zostavovacom počítači pre používateľa, pod menom ktorého bežec beží. Pre digitálny podpis používame fastlane a ak sa vyskytnú problémy alebo sa chcete dozvedieť viac, pozrite si ich podrobnosti
V tomto príklade používam prístup
Príprava GitLab a fastlane
Príprava CI Runner
Po zhromaždení všetkých týchto údajov prejdeme ku konfigurácii bežca GitLab na zariadení MacOS. Bohužiaľ, aplikácie pre iOS môžete vytvárať iba na MacOS. Všetko sa však môže zmeniť a ak očakávate pokrok v tejto oblasti, sledujte projekty ako
Nastavenie bežca je veľmi jednoduché. Sledujte prúd
Poznámka. Bežec musí použiť spustiteľný program shell
. Je to potrebné na zostavenie systému iOS na macOS, aby fungoval priamo ako používateľ a nie prostredníctvom kontajnerov. Ak používate shell
zostavovanie a testovanie sa vykonáva ako používateľ runner, priamo na hostiteľovi zostavy. Nie je to také bezpečné ako kontajnery, takže je lepšie prehľadávať
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 musí byť na tomto hostiteľovi nakonfigurovaný s prístupom ku kľúčom, ktoré Xcode potrebuje na zostavenie. Najjednoduchší spôsob, ako to otestovať, je prihlásiť sa ako používateľ, ktorý spustí zostavenie a pokúsiť sa ho zostaviť manuálne. Ak systém požiada o prístup ku kľúčenke, vyberte možnosť Vždy povoliť, aby CI fungovala. Možno by stálo za to ísť dnu a pozrieť si prvých pár potrubí, aby ste sa uistili, že už nebudú pýtať kľúčenku. Problém je v tom, že Apple nám neuľahčuje používanie automatického režimu, ale keď ho spustíte, všetko bude v poriadku.
fastlane init
Ak chcete použiť fastlane v projekte, spustite fastlane init
. Stačí nasledovať
V adresári projektu spustite tieto príkazy:
xcode-select --install
sudo gem install fastlane -NV
# Alternatively using Homebrew
# brew cask install fastlane
fastlane init
fastlane požiada o základnú konfiguráciu a potom v projekte vytvorí priečinok fastlane s tromi súbormi:
1. fastlane/Appfile
Nie je tu nič zložité. Len sa uistite, že vaše Apple ID a App ID sú správne.
app_identifier("com.vontrance.flappybird") # The bundle identifier of your app
apple_id("[email protected]") # Your Apple email address
2. fastlane/Fastfile
Fastfile
definuje kroky zostavenia. Používame veľa vstavaných funkcií fastlane, takže aj tu je všetko jasné. Vytvoríme jednu linku, ktorá dostane certifikáty, vykoná montáž a nahrá ju do TestFlight. V prípade potreby môžete tento proces rozdeliť na rôzne úlohy. Všetky tieto operácie (get_certificates
, get_provisioning_profile
, gym
и upload_to_testflight
) sú už zahrnuté v fastlane.
Činnosť get_certificates
и get_provisioning_profile
súvisiace s prístupom k podpisovaniu
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
Toto je voliteľný súbor, ale vytvoril som ho manuálne, aby som zmenil predvolený výstupný adresár a umiestnil výstup do aktuálneho priečinka. To zjednodušuje CI. Ak máte záujem, prečítajte si o gym
a jeho parametre v
https://docs.fastlane.tools/actions/gym/
Naše .gitlab-ci.yml
Takže máme CI runner pre projekt a sme pripravení otestovať plynovod. Pozrime sa, čo v sebe máme .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
Все отлично! clone
s vykonávaním programu shell
, aby sme mali na každú montáž čistý pracovný priestor a jednoducho zavolajte flappybuild
fastlane, ako je vidieť vyššie. Výsledkom je zostavenie, podpis a nasadenie najnovšej zostavy v TestFlight.
Získame aj artefakt a uložíme ho s montážou. Upozorňujeme, že formát .ipa
je podpísaný spustiteľný súbor ARM, ktorý sa nespúšťa v simulátore. Ak chcete výstup pre simulátor, stačí pridať cieľ zostavenia, ktorý ho vytvára, a potom ho zahrnúť do cesty artefaktu.
Ďalšie premenné prostredia
Existuje niekoľko premenných prostredia, vďaka ktorým všetko funguje.
FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD
и FASTLANE_SESSION
Overenie pre fastlane je potrebné na overenie v App Store a nahranie do TestFlight. Za týmto účelom vytvorte heslo pre aplikáciu, ktorá sa bude používať v CI. Podrobnosti
Ak máte dvojfaktorové overenie, vytvorte premennú FASTLANE_SESSION
(tam sú pokyny).
FASTLANE_USER
и FASTLANE_PASSWORD
Že FASTLANE_USER
и FASTLANE_PASSWORD
. Podrobnosti
na záver
Môžete vidieť, ako to celé funguje
Dúfam, že to bolo užitočné a inšpirovalo vás to k práci so zostavami iOS v projekte GitLab. Tu je ďalší CI_BUILD_ID
(pre prírastkové zostavy) do
Ďalšou skvelou vlastnosťou fastlane je
Povedzte nám v komentároch o svojich skúsenostiach a podeľte sa o svoje nápady na zlepšenie GitLab pre vývoj aplikácií pre iOS.
Zdroj: hab.com