Jak GitLab s fastlane shromažďuje, podepisuje a publikuje aplikace pro iOS v App Store.
Nedávno jsme měli
Tady bereme
Pár slov o konfiguraci Apple Store
Potřebujeme aplikaci v App Storu, distribuční certifikáty a zřizovací profil, abychom vše spojili dohromady.
Nejobtížnější je zde nastavit oprávnění k podpisu v App Store. Doufám, že na to přijdete sami. Pokud jste noví, nasměruji vás správným směrem, ale nebudeme se zde bavit o složitosti správy certifikátů Apple a neustále se mění. Tento příspěvek vám pomůže začít.
Moje aplikace
Potřebujete aplikaci v App Store Connect, abyste měli ID ke konfiguraci .xcodebuild
. Profil aplikace a ID kombinují sestavení kódu, cenu a dostupnost a konfiguraci TestFlight pro distribuci testovacích aplikací uživatelům. Nedělejte veřejné testování, soukromé testování stačí, pokud máte malou skupinu, jednoduché nastavení a nepotřebujete další oprávnění od Applu.
Profil poskytování
Kromě nastavení aplikace potřebujete distribuční a vývojové klíče iOS vytvořené v části Certifikáty, identifikátory a profily v Apple Developer Console. Všechny tyto certifikáty lze kombinovat v zřizovacím profilu.
Uživatelé, kteří budou autentizováni, potřebují možnost vytvářet certifikáty, jinak se postupuje podle kroků
další možnosti
Kromě této jednoduché metody existují další způsoby, jak nastavit certifikáty a profily. Pokud tedy pracujete jinak, možná se budete muset přenastavit. Nejdůležitější je, že budete potřebovat konfiguraci .xcodebuild
, který bude ukazovat na potřebné soubory, a klíčenka musí být dostupná na sestavení počítači pro uživatele, pod jehož jménem běžec běží. Pro digitální podepisování používáme fastlane, a pokud máte problémy nebo chcete vědět více, podívejte se na jejich podrobné informace
V tomto příkladu používám přístup
Příprava GitLab a fastlane
Příprava CI Runner
Po shromáždění všech těchto dat přejdeme ke konfiguraci běhu GitLab na zařízení MacOS. Bohužel vytváření aplikací pro iOS je možné pouze na MacOS. Vše se ale může změnit, a pokud čekáte pokrok v této oblasti, sledujte projekty jako
Nastavení běhounu je velmi snadné. Sledujte aktuální
Poznámka. Běžec musí použít spouštěcí program shell
. Je povinné sestavit iOS na macOS, aby fungoval přímo jako uživatel a ne prostřednictvím kontejnerů. Pokud používáte shell
, sestavení a testování se provádí jako běžecký uživatel přímo na hostiteli sestavení. Není to tak bezpečné jako kontejnery, takže raději otoč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 musí být nastaven na tomto hostiteli s přístupem ke klíčům, které Xcode potřebuje sestavit. Nejjednodušší způsob, jak to otestovat, je přihlásit se jako uživatel, který spustí sestavení, a zkusit sestavení ručně. Pokud systém požádá o přístup ke klíčence, vyberte „Vždy povolit“, aby CI fungovalo. Možná by stálo za to jít dovnitř a podívat se na první pár potrubí, abyste se ujistili, že už nebudou chtít klíčenku. Potíž je v tom, že nám Apple neusnadňuje práci s automatickým režimem, ale když si ho nastavíte, bude vše v pořádku.
fastlane init
Chcete-li v projektu použít fastlane, spusťte fastlane init
. Prostě následuj
V adresáři projektu spusťte tyto příkazy:
xcode-select --install
sudo gem install fastlane -NV
# Alternatively using Homebrew
# brew cask install fastlane
fastlane init
fastlane si vyžádá základní konfiguraci a poté v projektu vytvoří složku fastlane se třemi soubory:
1. fastlane/Appfile
Není tu nic složitého. Jen se ujistěte, že vaše Apple ID a App ID jsou správné.
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 sestavení. Používáme spoustu vestavěných funkcí fastlane, takže i zde je vše jasné. Vytvoříme jednu linku, která obdrží certifikáty, sestaví a nahraje ji do TestFlight. V případě potřeby můžete tento proces rozdělit na různé úkoly. Všechny tyto operaceget_certificates
, get_provisioning_profile
, gym
и upload_to_testflight
) jsou již součástí fastlane.
Činnost get_certificates
и get_provisioning_profile
spojené s přístupem k podpisu
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 volitelný soubor, ale vytvořil jsem jej ručně, abych změnil výchozí výstupní adresář a vložil výstup do aktuální složky. To zjednodušuje CI. Máte-li zájem, přečtěte si o gym
a jeho parametry v
https://docs.fastlane.tools/actions/gym/
Naše .gitlab-ci.yml
Takže pro projekt máme CI runner a jsme připraveni otestovat potrubí. Podívejme se, co 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
Vynikající! clone
se spuštěným programem shell
abychom měli čistý pracovní prostor pro každou stavbu a stačí zavolat flappybuild
fastlane, jak je vidět výše. Výsledkem je sestavení, podpis a nasazení nejnovějšího sestavení v TestFlight.
Získáme také artefakt a uložíme ho s montáží. Všimněte si, že formát .ipa
je podepsaný spustitelný soubor ARM, který nelze spustit v simulátoru. Pokud chcete výstup simulátoru, stačí přidat cíl sestavení, který jej vytváří, a poté jej zahrnout do cesty artefaktu.
Další proměnné prostředí
Existuje zde několik proměnných prostředí, na kterých vše funguje.
FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD
и FASTLANE_SESSION
K ověření v App Store a nahrání do TestFlight potřebujete ověření pro fastlane. Chcete-li to provést, vytvořte heslo aplikace, které se bude používat v CI. Podrobnosti
Pokud máte dvoufaktorové ověřování, vytvořte proměnnou FASTLANE_SESSION
(tam je návod).
FASTLANE_USER
и FASTLANE_PASSWORD
Že FASTLANE_USER
и FASTLANE_PASSWORD
. Podrobnosti
Konečně,
Můžete se podívat, jak to celé funguje
Doufám, že to bylo užitečné a inspirovalo vás k práci s iOS buildy v projektu GitLab. Tady je další CI_BUILD_ID
(pro přírůstkové sestavení) do
Další skvělou vlastností fastlane je
Sdělte nám své zkušenosti v komentářích a podělte se o nápady na vylepšení GitLabu pro vývoj aplikací pro iOS.
Zdroj: www.habr.com