Fastlane — verktyg för automatisering av byggen och publicering av mobilappar för iOS och Android. Fastlane hanterar kodsignering, bygge, körning av tester, skapande av skärmbilder och uppladdning till App Store Connect och Google Play Console. Det är de facto-standarden för CI/CD inom mobilutveckling.
Huvudsakliga slutsatser
Fastlane — är ett open-source-verktyg som automatiserar rutinuppgifter inom mobilutveckling: bygge av appen, körning av tester, skapande av skärmbilder, hantering av certifikat, uppladdning av byggen till TestFlight, App Store och Google Play. Fastlane är skrivet i Ruby och distribueras via RubyGems med kommandot gem install fastlane.
Fastlane dök upp 2015 som ett iOS-verktyg men expanderade snabbt till Android. Idag är det ett ekosystem av dussintals actions — inbyggda kommandon som kan kombineras i scenarier som kallas lanes. Varje lane utför en specifik uppgift: till exempel bygger build_release releaseversionen och deploy_beta laddar upp bygget till TestFlight.
Fastlane används av företag som Uber, Airbnb, Snapchat, Twitter och Shopify. Enligt en undersökning från 2024 använder över 60% av iOS-utvecklarna Fastlane i sina projekt. Verktyget stöder både lokal körning och integration med molnbaserade CI-system, vilket gör det till de facto-standarden för mobil CI/CD.
# Installation av Fastlane
sudo gem install fastlane -NV
# Initiering i projektet
fastlane init
Efter initiering skapar Fastlane katalogen fastlane/ med tre filer: Fastfile (scenarier), Appfile (appinställningar) och Matchfile (certifikatinställningar). Denna struktur förblir densamma för båda plattformarna — iOS och Android.
Fastlanes huvudsakliga konfigurationsfil — Fastfile. Den finns i katalogen fastlane/ i projektets rot. Fastfile skrivs i Ruby: varje lane är ett namngivet block med en sekvens av actions. En lane kan acceptera parametrar, anropa andra lanes och returnera värden.
# fastlane/Fastfile — exempel för 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
Varje lane startas med kommandot fastlane ios beta eller fastlane ios release. Fastfile stöder variabler, villkor, loopar och anrop av externa skript — det är en fullvärdig Ruby-fil. Utvecklare kan återanvända kod via private_lane (lokala metoder) och import från andra Fastfile.
Fastlane erbjuder över 200 inbyggda actions för de flesta uppgifter. Om den nödvändiga actionen inte finns kan man skriva en egen i Ruby eller anropa ett shell-kommando via sh("..."). Actions kan acceptera parametrar — bygginställningar, sökvägar, åtkomsttokens — och returnera resultatet för användning i nästa steg.
Fastlane för iOS löser tre viktiga problem: hantering av certifikat och provisioning profiles, bygge av IPA via Xcode och publicering till App Store Connect och TestFlight. Var och en av dessa uppgifter täcks av en separat action.
match — action för certifikathantering. Lagrar alla certifikat och provisioning profiles i ett krypterat Git-förråd. Varje utvecklare och CI-server använder samma filuppsättning, vilket eliminerar konflikter och problem med utgångna certifikat. Match uppdaterar automatiskt profiler när nya enheter läggs till.
sigh — skapar och laddar ner en provisioning profile via Apple Developer Portal. Används när man snabbt behöver en profil för en specifik typ: development, ad-hoc eller appstore.
gym — bygge av IPA. Gym omsluter xcodebuild med optimala parametrar, väljer automatiskt schema, konfiguration, exportalternativ och skapar en signerad IPA. Exempel: gym(scheme: "MyApp", export_method: "app-store").
pilot — hantering av TestFlight. Laddar upp bygget, lägger till testare, följer granskningsstatus. deliver — fullständig publicering i App Store, inklusive metadata, skärmbilder, pris och versioner.
# Bygge och publicering av iOS-app
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
För arbete med App Store Connect krävs åtkomsttokens. Fastlane stöder två autentiseringsmetoder: App Store Connect API Key (rekommenderas) och Apple ID med tvåfaktorsautentisering. API-nycklar är bekvämare för CI/CD eftersom de inte kräver interaktiv lösenordsinmatning.
| Action | Syfte | Manuell motsvarighet |
|---|---|---|
match | Hantering av certifikat och profiler | Apple Developer Portal |
sigh | Skapa provisioning profile | Xcode + Developer Portal |
gym | Bygge av IPA | xcodebuild + xcrun |
pilot | Uppladdning till TestFlight | Xcode Organizer |
deliver | Publicering i App Store | App Store Connect Web |
scan | Körning av UI-tester | xcodebuild test |
På Android automatiserar Fastlane bygge via Gradle, signering av APK och AAB, uppladdning till Google Play Console och Firebase App Distribution.
gradle — den huvudsakliga action för Android-bygge. Anropar Gradle wrapper med nödvändiga uppgifter: gradle(task: "assembleRelease") eller gradle(task: "bundleRelease") för AAB. Flaggor, miljövariabler och sökväg till gradle.properties kan skickas.
supply — uppladdning av APK eller AAB till Google Play Console. Supply hanterar versioner, spår (internal, alpha, beta, production), versionsanteckningar, pris och distributionsland. Exempel: supply(track: "beta", release_status: "completed").
screengrab — skapande av skärmbilder för Google Play. Kör instrumenteringstester som tar skärmbilder av appens skärmar på olika enheter och språk. De erhållna skärmbilderna laddas upp via supply.
# Bygge och publicering av Android-app
lane :deploy_android do
gradle(task: "clean bundleRelease")
supply(
track: "beta",
release_status: "completed",
version_code: 42
)
end
| Action | Syfte | Manuell motsvarighet |
|---|---|---|
gradle | Bygge via Gradle | ./gradlew assembleRelease |
supply | Uppladdning till Google Play | Google Play Console Web |
screengrab | Skapande av skärmbilder | Manuell skärmbild + ImageMagick |
firebase_app_distribution | Distribution via Firebase | Firebase Console Upload |
Fastlane är utformat för att fungera i CI/CD-pipelines. Det hanterar korrekt icke-interaktivt läge, miljövariabler och byggartefakter. Nedan — exempel på integration med populära CI-system.
I GitHub Actions körs Fastlane som ett Ruby-skript. Typiskt arbetsflöde: installation av Ruby och Fastlane, konfiguration av nycklar (certifikat, API-tokens via secrets), körning av lane. För iOS krävs en macOS-runner; Android fungerar på ubuntu-latest.
I GitLab CI används Fastlane i .gitlab-ci.yml med ett liknande schema: installation av beroenden, körning av fastlane, överföring av artefakter. GitLab CI stöder macOS- och Linux-runners.
Bitrise — specialiserad CI/CD för mobilappar — har inbyggt stöd för Fastlane. Bitrise Workflow kan anropa Fastlane Step eller köra godtyckliga skript med fastlane. Bitrise hanterar certifikat via sin egen Code Signing Manager.
# Fastfile för CI/CD med villkorlig testkörning
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
En viktig aspekt av CI/CD-integration — lagring av hemligheter. Fastlane använder filen .env via dotenv och miljövariabler. För iOS är kritiska variabler: MATCH_PASSWORD, FASTLANE_APPLE_API_KEY, FASTLANE_APPLE_API_KEY_ID. För Android: SUPPLY_JSON_KEY_DATA — innehållet i Google Play-tjänstkontot.
Fastlane innehåller över 200 inbyggda actions. Nedan — en översikt av de mest populära med angivelse av plattform och syfte.
| Action | Plattform | Beskrivning |
|---|---|---|
gym | iOS | Bygge av IPA med optimerade xcodebuild-parametrar |
match | iOS | Synkronisering av certifikat och provisioning profiles via Git |
pilot | iOS | Uppladdning av bygge till TestFlight och hantering av testare |
deliver | iOS | Publicering av app i App Store med metadata |
scan | iOS | Körning av unit- och UI-tester med rapportgenerering |
gradle | Android | Körning av Gradle-uppgifter: assemble, bundle, test |
supply | Android | Uppladdning av APK och AAB till Google Play Console |
screengrab | Android | Automatiska skärmbilder för Google Play |
firebase_app_distribution | Android | Distribution av byggen via Firebase |
snapshot | iOS | Automatiska skärmbilder på simulatorer för App Store |
increment_build_number | iOS | Autoökning av byggnummer i Xcode-projekt |
appcenter_upload | Båda | Uppladdning av bygge till App Center |
För att söka efter en nödvändig action används kommandot fastlane action [namn], som visar dokumentation, parametrar och exempel. Fullständig lista finns lokalt: fastlane actions.
Fastlane stöder också plugins — community-tillägg som lägger till nya actions. Plugin installeras via fastlane add_plugin [namn] och finns i RubyGems-registret. Exempel på populära plugin: fastlane-plugin-versioning (versionshantering), fastlane-plugin-sentry (uppladdning av debug-symboler till Sentry), fastlane-plugin-teams (meddelanden i Microsoft Teams).
Frequently Asked Questions
Fastlane — är ett verktyg för automatisering av byggen och publicering av mobilappar. Det används för att ersätta manuella operationer — bygge, signering, uppladdning till butiker — med ett enda kommando. Fastlane förkortar releasetiden från timmar till minuter och eliminerar mänskliga fel vid publicering.
Ja. Fastlane stöder båda plattformarna oberoende. För iOS krävs macOS, för Android räcker Linux. I en Fastfile kan lanes separeras efter plattform: platform :ios do ... end och platform :android do ... end.
Genom action match. Det lagrar krypterade certifikat och provisioning profiles i ett Git-förråd. Varje utvecklare klonar förrådet, match dekrypterar filerna med lösenordet från variabeln MATCH_PASSWORD och installerar dem i nyckelringen. Detta löser problemet "det bygger på min maskin".
Ja. Fastlane har en inbyggd action firebase_app_distribution för uppladdning av APK och IPA till Firebase App Distribution. Även firebase_app_distribution_add_testers finns för att lägga till testare. Alternativ — action appcenter_upload för App Center.
Fastlane installeras via RubyGems: gem install fastlane -NV. För iOS krävs macOS med Xcode; för Android — Linux eller macOS med JDK och Android SDK. I GitHub Actions finns en färdig action ruby/setup-ruby för installation av Ruby och Fastlane. Miljövariabler skickas via CI-systemets secrets.
Fastlane — är ett bibliotek och CLI för automatisering av bygg- och publiceringsuppgifter. Bitrise och Jenkins — är kompletta CI/CD-plattformar. Fastlane fungerar inuti dem: Jenkins kör Fastlane som ett pipeline-steg, Bitrise anropar Fastlane via ett särskilt Step. Fastlane ersätter inte CI-systemet utan kompletterar det med mobil specificitet.
Summary
Vi utvecklar en mobil applikation nyckelfärdigt
IT Sectr skapar iOS- och Android-applikationer för startups och företag sedan 2017. Vi ger dig råd och föreslår den bästa lösningen.
Läs också