Fastlane — nástroj pro automatizaci buildů a publikací mobilních aplikací pro iOS a Android. Fastlane spravuje podepisování kódu, build, spouštění testů, vytváření snímků obrazovky a nahrávání do App Store Connect a Google Play Console. Je to de facto standard pro CI/CD v mobilním vývoji.
Hlavní závěry
Fastlane — je open-source nástroj, který automatizuje rutinní úkoly mobilního vývoje: build aplikace, spouštění testů, vytváření snímků obrazovky, správu certifikátů, nahrávání buildů do TestFlight, App Store a Google Play. Fastlane je napsán v Ruby a je distribuován přes RubyGems příkazem gem install fastlane.
Fastlane se objevil v roce 2015 jako nástroj pro iOS, ale rychle se rozšířil na Android. Dnes je to ekosystém desítek akcí — vestavěných příkazů, které lze kombinovat do scénářů nazývaných lanes. Každý lane provádí konkrétní úkol: například build_release sestaví release verzi a deploy_beta nahraje build do TestFlight.
Fastlane používají společnosti jako Uber, Airbnb, Snapchat, Twitter a Shopify. Podle průzkumu z roku 2024 používá Fastlane ve svých projektech více než 60% iOS vývojářů. Nástroj podporuje jak lokální spouštění, tak integraci s cloudovými CI systémy, což z něj činí de facto standard pro mobilní CI/CD.
# Instalace Fastlane
sudo gem install fastlane -NV
# Inicializace v projektu
fastlane init
Po inicializaci Fastlane vytvoří adresář fastlane/ se třemi soubory: Fastfile (scénáře), Appfile (nastavení aplikace) a Matchfile (nastavení certifikátů). Tato struktura zůstává stejná pro obě platformy — iOS a Android.
Hlavní konfigurační soubor Fastlane — Fastfile. Nachází se v adresáři fastlane/ v kořenu projektu. Fastfile se píše v Ruby: každý lane je pojmenovaný blok s posloupností akcí. Lane může přijímat parametry, volat jiné lanes a vracet hodnoty.
# fastlane/Fastfile — příklad pro iOS
default_platform(:ios)
platform :ios do
desc "Build and upload to TestFlight"
lane :beta do
match(type: "appstore")
gym(scheme: "MyApp", configuration: "Release")
pilot(skip_waiting_for_build: true)
end
desc "Deploy to App Store"
lane :release do
ensure_git_status_clean
match(type: "appstore")
gym(scheme: "MyApp")
deliver(
skip_metadata: true,
skip_screenshots: true
)
push_to_git_remote(tags: true)
end
end
Každý lane se spouští příkazem fastlane ios beta nebo fastlane ios release. Fastfile podporuje proměnné, podmínky, cykly a volání externích skriptů — je to plnohodnotný Ruby soubor. Vývojáři mohou znovu používat kód pomocí private_lane (lokální metody) a import z jiných Fastfile.
Fastlane poskytuje více než 200 vestavěných akcí pro většinu úkolů. Pokud potřebná akce neexistuje, lze napsat vlastní v Ruby nebo zavolat shell příkaz přes sh("..."). Akce mohou přijímat parametry — nastavení buildu, cesty, přístupové tokeny — a vracet výsledek pro použití v dalších krocích.
Fastlane pro iOS řeší tři klíčové problémy: správu certifikátů a provisioning profiles, build IPA přes Xcode a publikaci do App Store Connect a TestFlight. Každý z těchto úkolů je pokryt samostatnou akcí.
match — akce pro správu certifikátů. Ukládá všechny certifikáty a provisioning profiles do šifrovaného Git repozitáře. Každý vývojář a CI server používají stejnou sadu souborů, což eliminuje konflikty a problémy s prošlými certifikáty. Match automaticky aktualizuje profily při přidávání nových zařízení.
sigh — vytváří a stahuje provisioning profile přes Apple Developer Portal. Používá se, když je potřeba rychle získat profil pro konkrétní typ: development, ad-hoc nebo appstore.
gym — build IPA. Gym obaluje xcodebuild s optimálními parametry, automaticky vybírá schéma, konfiguraci, export options a vytváří podepsaný IPA. Příklad: gym(scheme: "MyApp", export_method: "app-store").
pilot — správa TestFlight. Nahraje build, přidá testery, sleduje stav recenze. deliver — plná publikace v App Store, včetně metadat, snímků obrazovky, ceny a verzí.
# Build a publikace iOS aplikace
lane :deploy_ios do
cocoapods
match(type: "appstore", readonly: true)
gym(scheme: "MyApp", export_method: "app-store")
pilot(changelog: "Bug fixes and performance improvements")
end
Pro práci s App Store Connect jsou vyžadovány přístupové tokeny. Fastlane podporuje dva způsoby autentizace: App Store Connect API Key (doporučeno) a Apple ID s dvoufaktorovou autentizací. API klíče jsou pro CI/CD výhodnější, protože nevyžadují interaktivní zadávání hesla.
| Akce | Účel | Ruční ekvivalent |
|---|---|---|
match | Správa certifikátů a profilů | Apple Developer Portal |
sigh | Vytvoření provisioning profile | Xcode + Developer Portal |
gym | Build IPA | xcodebuild + xcrun |
pilot | Nahrání do TestFlight | Xcode Organizer |
deliver | Publikace v App Store | App Store Connect Web |
scan | Spouštění UI testů | xcodebuild test |
Na Androidu Fastlane automatizuje build přes Gradle, podepisování APK a AAB, nahrávání do Google Play Console a Firebase App Distribution.
gradle — hlavní akce pro build Androidu. Volá Gradle wrapper s potřebnými úkoly: gradle(task: "assembleRelease") nebo gradle(task: "bundleRelease") pro AAB. Lze předávat příznaky, proměnné prostředí a cestu k gradle.properties.
supply — nahrávání APK nebo AAB do Google Play Console. Supply spravuje verze, tracky (internal, alpha, beta, production), poznámky k vydání, cenu a zemi distribuce. Příklad: supply(track: "beta", release_status: "completed").
screengrab — vytváření snímků obrazovky pro Google Play. Spouští instrumentační testy, které pořizují snímky obrazovky aplikace na různých zařízeních a jazycích. Získané snímky se nahrávají přes supply.
# Build a publikace Android aplikace
lane :deploy_android do
gradle(task: "clean bundleRelease")
supply(
track: "beta",
release_status: "completed",
version_code: 42
)
end
| Akce | Účel | Ruční ekvivalent |
|---|---|---|
gradle | Build přes Gradle | ./gradlew assembleRelease |
supply | Nahrání do Google Play | Google Play Console Web |
screengrab | Vytváření snímků obrazovky | Ruční snímek + ImageMagick |
firebase_app_distribution | Distribuce přes Firebase | Firebase Console Upload |
Fastlane je navržen pro práci v CI/CD pipeline. Správně zpracovává neinteraktivní režim, proměnné prostředí a artefakty buildu. Níže — příklady integrace s populárními CI systémy.
V GitHub Actions se Fastlane spouští jako Ruby skript. Typický workflow: instalace Ruby a Fastlane, nastavení klíčů (certifikáty, API tokeny přes secrets), spuštění lane. Pro iOS je vyžadován macOS runner; Android funguje na ubuntu-latest.
V GitLab CI se Fastlane používá v .gitlab-ci.yml s podobným schématem: instalace závislostí, spuštění fastlane, předání artefaktů. GitLab CI podporuje macOS a Linux runners.
Bitrise — specializované CI/CD pro mobilní aplikace — má vestavěnou podporu pro Fastlane. Bitrise Workflow může volat Fastlane Step nebo spouštět libovolné skripty s fastlane. Bitrise spravuje certifikáty prostřednictvím svého vlastního Code Signing Manageru.
# Fastfile pro CI/CD s podmíněným spouštěním testů
lane :ci_test do
scan(scheme: "MyApp", code_coverage: true)
end
lane :ci_beta do
ensure_git_status_clean
version_bump_podspec(path: "MyApp.podspec")
match(type: "appstore", readonly: true)
gym(scheme: "MyApp", export_method: "app-store")
pilot(distribute_external: true)
end
Důležitým aspektem integrace CI/CD — ukládání tajemství. Fastlane používá soubor .env přes dotenv a proměnné prostředí. Pro iOS jsou kritické proměnné: MATCH_PASSWORD, FASTLANE_APPLE_API_KEY, FASTLANE_APPLE_API_KEY_ID. Pro Android: SUPPLY_JSON_KEY_DATA — obsah servisního účtu Google Play.
Fastlane obsahuje více než 200 vestavěných akcí. Níže — přehled nejpopulárnějších s uvedením platformy a účelu.
| Akce | Platforma | Popis |
|---|---|---|
gym | iOS | Build IPA s optimalizovanými parametry xcodebuild |
match | iOS | Synchronizace certifikátů a provisioning profiles přes Git |
pilot | iOS | Nahrání buildu do TestFlight a správa testerů |
deliver | iOS | Publikace aplikace v App Store s metadaty |
scan | iOS | Spouštění unit a UI testů s generováním zprávy |
gradle | Android | Spouštění Gradle úkolů: assemble, bundle, test |
supply | Android | Nahrání APK a AAB do Google Play Console |
screengrab | Android | Automatické snímky obrazovky pro Google Play |
firebase_app_distribution | Android | Distribuce buildů přes Firebase |
snapshot | iOS | Automatické snímky obrazovky na simulátorech pro App Store |
increment_build_number | iOS | Autoinkrementace čísla buildu v projektu Xcode |
appcenter_upload | Obě | Nahrání buildu do App Center |
Pro vyhledání potřebné akce se používá příkaz fastlane action [název], který zobrazí dokumentaci, parametry a příklady. Úplný seznam je k dispozici lokálně: fastlane actions.
Fastlane také podporuje pluginy — komunitní rozšíření, která přidávají nové akce. Pluginy se instalují přes fastlane add_plugin [název] a jsou k dispozici v registru RubyGems. Příklady populárních pluginů: fastlane-plugin-versioning (správa verzí), fastlane-plugin-sentry (nahrání debug symbols do Sentry), fastlane-plugin-teams (oznámení v Microsoft Teams).
Frequently Asked Questions
Fastlane — je nástroj pro automatizaci buildů a publikací mobilních aplikací. Slouží k nahrazení ručních operací — build, podepisování, nahrávání do obchodů — jedním příkazem. Fastlane zkracuje dobu vydání z hodin na minuty a eliminuje lidské chyby při publikaci.
Ano. Fastlane podporuje obě platformy nezávisle. Pro iOS je vyžadován macOS, pro Android stačí Linux. V jednom Fastfile lze rozdělit lanes podle platforem: platform :ios do ... end a platform :android do ... end.
Pomocí akce match. Ukládá šifrované certifikáty a provisioning profiles v Git repozitáři. Každý vývojář klonuje repozitář, match dešifruje soubory heslem z proměnné MATCH_PASSWORD a nainstaluje je do keychain. To řeší problém "na mém stroji se to buildí".
Ano. Fastlane má vestavěnou akci firebase_app_distribution pro nahrávání APK a IPA do Firebase App Distribution. K dispozici je také firebase_app_distribution_add_testers pro přidávání testerů. Alternativa — akce appcenter_upload pro App Center.
Fastlane se instaluje přes RubyGems: gem install fastlane -NV. Pro iOS je vyžadován macOS s Xcode; pro Android — Linux nebo macOS s JDK a Android SDK. V GitHub Actions je připravená akce ruby/setup-ruby pro instalaci Ruby a Fastlane. Proměnné prostředí se předávají přes secrets CI systému.
Fastlane — je knihovna a CLI pro automatizaci úkolů buildu a publikace. Bitrise a Jenkins — jsou kompletní CI/CD platformy. Fastlane pracuje uvnitř nich: Jenkins spouští Fastlane jako krok pipeline, Bitrise volá Fastlane přes speciální Step. Fastlane nenahrazuje CI systém, ale doplňuje jej o mobilní specifičnost.
Summary
Vyvineme mobilní aplikaci na klíč
IT Sectr vytváří aplikace pro iOS a Android pro startupy a podniky od roku 2017. Poradíme vám a navrhneme nejlepší řešení.
Přečtěte si také