Jak zautomatizovat vydání a release mobilních aplikací? S Fastlane!
15. července 2021
V našem dalším odborném článku se díváme na problematiku vydávání a release aplikací pro platformy Android a iOS. Odhalujeme, jakým způsobem k těmto aktivitám přistupujeme my, a přinášíme stručný návod dalším vývojářům.
Publikace aplikace = poměrně náročný proces
Při vývoji aplikace je vhodné průběžně testovat její dokončené části. Proto však musí vývojář aplikaci archivovat pomocí vývojového prostředí XCode a poté získaný archiv nahrát na Testflight (nebo jiný testovací portál) pro testery. Když je aplikace hotová, odladěná od všech chyb a připravená na produkční vydání do AppStore, je potřeba tento proces zopakovat a nahrát screenshoty aplikace ve všech podporovaných jazycích. Navíc je potřeba spravovat certifikáty, což bývá velká otrava a často u toho ztratíme pár vlasů. Nebylo by ale super, kdybychom si všechno toto trápení mohli odpustit díky nástroji, který by nám celý proces zautomatizoval?
Fastlane tool - velmi schopný pomocník
Fastlane je pravděpodobně ten nejlehčí způsob, jak zautomatizovat vydání a release aplikací pro platformy Android/iOS. Postará se za nás o určité kroky, které by nám jinak zbytečně vzaly drahocenný čas. Řeč je například o automatické zvýšení verze aplikace, archivaci aplikace, changelog atd..
Funkce Fastlane:
Automatické vygenerování screenshotů ve všech jazycích a pro všechna zařízení, která aplikace podporuje.
Beta Deployment - Vydání beta verzí průběžného vývoje pro testery.
AppStore Deployment - Release nové produkční verze do AppStore.
Code Signing - Správa certifikátů potřebných pro vývoj a samotný release.
Po celém dokončení procesu vydání umí Fastlane také například poslat zprávu do Slacku, ve které bude informovat všechny uživatele vybraného kanálu o jejím vydání. Fastlane je také možné integrovat do již existujícího CI (Bitrise, Jenkins, ...), čímž je proces ještě pohodlnější.
Dost ale teorie, pojďme skočit na instalaci a samotnou implementaci do projektu!
Instalaci Fastlane je možné provést několika způsoby. U nás v Dactylu jsme využili Ruby, ale instalace je možná například i pomocí HomeBrew.
HomeBrew instalace
brew install fastlane
Následně doporučujeme nastavit Fastlane match pro správu certifikátů. Návod je přímo na stránkách Fastlane a je velmi dobře napsaný. Bylo by tedy zbytečné jej opisovat, a proto vám zde vložíme aspoň odkaz na nastavení.
Po úspěšné instalaci Fastlane se nyní přesuneme do složky projektu a v terminálu zadáme:
fastlane init
To nám vygeneruje několik nových souborů do projektu - Appfile, Gemfile a Fastfile.
Do projektu ještě přidáme jeden soubor, který nazveme Pluginfile. Do něj nainstalujeme plugin pro automatické zvýšení verze aplikace. To provedeme vložením jednoho řádku do tohoto vytvořeného souboru.
gem 'fastlane-plugin-versioning'
Gemfile - slouží pro implementaci gemů pro Fastlane. AppFile - obsahuje Apple ID. Fastfile - spravuje jednotlivé ,,lanes”.
V tomto tutoriálu si následně ukážeme, jak nastavit lane tak, aby nám Fastlane vydala verzi aplikace pro testery. Kroky každého vývojáře se můžou lišit, neboť každý má své vlastní potřeby, proto není nutné se tohoto postupu držet úplně přesně.
V souboru AppFileurčíme ID aplikace tak, aby sedělo s app_identifier v Xcode a také na App Store Connect.
for_platform :ios do
for_lane :beta do
app_identifier 'bundle_id_aplikace'
end
Nyní pojďme nastavit poslední soubor Fastfile. Prvně je potřeba nastavit název první lane a definovat kroky, které se v rámci procesu provedou. Na začátek je dobré si v souboru vytvořit pár proměnných, jež můžeme využít při větším počtu ,,lanes” (např. jedna pro betu, druhá pro produkční release).
lane :beta do
buildFinalTarget = 'nazevVasehoTargetu'
currentBranch = 'nazevBranch'
appleID = 'vaseAppleId'
test_flight_build()
commit_version()
end
buildFinalTarget - název targetu, ze kterého budete chtít build udělat.
currentBranch - název větve, která bude pro build použita.
appleID - vaše Apple ID - je možné získat z AppStore Connect.
test_flight_build() a commit_version() budou definovány níže.
Následně přidámetest_flight_build(), který nám vybuildí aplikaci pro TestFlight.
lane :test_flight_build do
desc "Push a new #{buildFinalTarget} build to TestFlight"
increment_build_number(
xcodeproj: xcodeproj
)
sync_code_signing(
type: 'appstore',
readonly: true
)
build_app(
clean: false,
workspace: "lifeapp-ios.xcworkspace",
configuration: "VaseKonfigurace",
scheme: buildFinalTarget,
export_method: "app-store",
output_directory: "./build",
include_bitcode: true
)
Configuration může být například “Release”, “Beta” atd. Posledním krokem je implementace commit_version, která vytvoří commit s novou verzí. Je zde také možnost definovat vlastní commit nebo i další kroky, které chcete provést.
lane :commit_version do
build_number = get_build_number(xcodeproj: xcodeproj)
version = get_version_number(
xcodeproj: xcodeproj,
target: buildFinalTarget
)
commit_version_bump(
message: "Release-#{version}-#{build_number}",
)
add_git_tag(
grouping: "fastlane",
prefix: "#{version}-"
)
push_to_git_remote(
remote_branch: currentBranch,
force: true,
tags: true
)
end
Nyní bychom měli mít vše nastavené a nachystané pro náš první build! Než samotný fastlane spustíte, ujistěte se, že máte veškeré změny commitnuté a nejsou žádné rozpracované změny. Pro samotné spuštění nyní stačí v terminálu přejít do složky projektu a zadat jeden jediný příkaz:
fastlane beta
Pokud je vše nastavené správně, měli byste vidět po dokončení něco takového!
Doufáme, že vám tento tutoriál pomůže při vlastním řešení! Pokud jste narazili na problémy nebo byste měli jakýkoliv dotaz, neváhejte se nás kontaktovat!
Autorem tohoto textu je Kevin Singh, náš mobile team lead.
Kontrolní otázka, co jsou cookies? Vyberte správnou odpověď.
Cookies nejsou sušenky, ale textové soubory
Chceme mít přehled, jak to na našem webu žije. Vy ale máte ve své moci, kolik se toho o vaší zdejší návštěvě dozvíme.
Jako vývojáře webů a aplikací nás zajímají analytická data, budeme proto vděční za váš souhlas.
Nastavení cookies
Vyberte vámi preferované povolení cookie, přičemž základní jsou nezbytné pro fungování, jiné můžeme používat jen s vaším souhlasem.
Vaše osobní údaje budou zpracovány a informace z vašeho zařízení (soubory cookie, jidinečné identifikátory a další údaje zařízená) mohou být uchovávány.
Svůj názor můžete vždy změnit a souhlas odvolat pomocí odkazu v patičce tohoto webu. Pro více informací o používání cookies prosím naštivte tuto stránku.