Fastlane är ett öppen källkods-verktyg för att automatisera byggande, testning och publicering av iOS- och Android-appar. Istället för att manuellt utföra dussintals kommandon för signering, byggande och uppladdning till butiken, beskriver utvecklaren hela processen i en Fastfile och startar den med ett enda kommando. Enligt Fastlane Docs, 2025 används verktyget i mer än 1,5 miljoner projekt världen över. Fastlane samlar verktyg för att arbeta med App Store Connect, Google Play Console och kodsigneringssystem.
Huvudpunkter
Fastlane är ett verktyg för att automatisera mobila byggen, skrivet i Ruby och distribuerat under MIT-licens. Det automatiserar rutinuppgifter för mobilutvecklare: att bygga appen, köra tester, skapa skärmbilder, signera kod och ladda upp binära filer till App Store eller Google Play. Istället för 15–20 manuella kommandon kör utvecklaren ett enda fastlane-kommando med namnet på scenariot.
Fastlane fungerar som ett wrapper för Xcode-verktyg (xcodebuild, xcrun) och Android SDK (gradlew, apksigner, bundletool) och tillhandahåller ett enhetligt gränssnitt för båda plattformarna. Detta är särskilt värdefullt för team som underhåller iOS- och Android-versioner av samma app — identiska Fastfile kan beskriva byggen för båda plattformarna med minimala skillnader i parametrar.
Enligt GitHub har Fastlane över 39 000 stjärnor och är standarden för automatisering inom mobilutveckling. Verktyget stöds av communityn och Google — Fastlane är integrerat i Firebase som det rekommenderade sättet att leverera Android-appar till Google Play Console.
Fastlane-arkitekturen är uppbyggd på tre nivåer: actions (grundläggande kommandon), lanes (scenarier) och verktyg (specialiserade hjälpprogram). Actions är enskilda Fastlane-funktioner, som var och en utför en specifik åtgärd: skapa en skärmbild, bygga en IPA, ladda upp till TestFlight. Lanes kombinerar flera actions till ett sekventiellt scenario som beskrivs i Fastfile.
Actions är byggstenarna i Fastlane. Varje action tar emot parametrar och utför en uppgift. Till exempel bygger action gym en iOS-app, scan kör tester, pilot laddar upp en build till TestFlight. Fastlane har totalt över 200 inbyggda actions, dokumentation för varje finns tillgänglig via kommandot fastlane action [namn].
Om inbyggda actions inte räcker kan utvecklaren skapa en custom action i Ruby och ansluta den i Fastfile. Anpassade actions distribueras via Fastlane-plugin, som publiceras på Rubygems och installeras via filen FastfilePlugin i projektroten.
Lane är ett namngivet automatiseringsscenario som kombinerar flera actions i en logisk sekvens. En lane kan anropa andra lanes (private lanes), skicka parametrar och hantera fel. Detta gör det möjligt att bygga en hierarki av scenarier: grundläggande bygg-lane, deploy-lane, full CI/CD-cykel-lane.
Fastlane innehåller en uppsättning specialiserade verktyg, som var och en löser en specifik uppgift inom mobil automatisering. Verktygen startas som actions inuti lanes eller direkt från kommandoraden. Låt oss titta på fyra nyckelverktyg som täcker de huvudsakliga CI/CD-behoven för iOS och Android.
| Verktyg | Syfte | Kommando |
|---|---|---|
| scan | Kör Unit- och UI-tester på iOS-simulator | fastlane scan |
| gym | Bygga IPA- eller APP-fil för iOS | fastlane gym |
| match | Synkronisera certifikat och provisioning profiles via Git | fastlane match |
| deliver | Ladda upp binärfil och metadata till App Store Connect | fastlane deliver |
| snapshot | Automatisk generering av skärmbilder på olika enheter | fastlane snapshot |
Scan förenklar körning av Xcode-tester genom att automatiskt välja lämplig simulator och formatera rapporten. Gym bygger appen med optimala kompileringsflaggor och stöder exportOptions.plist för olika byggtyper (development, adhoc, appstore). Deliver gör det möjligt att ladda upp inte bara binärfilen utan även skärmbilder, beskrivning, versioner och priser via en enda metadatafil.
Verktyget Match förtjänar särskild uppmärksamhet — det löser problemet med lagring och synkronisering av iOS-certifikat i ett team. Match krypterar och lagrar certifikat och provisioning profiles i en Git-repository, och utvecklare får dem automatiskt när fastlane match körs. Detta eliminerar manuell konfiguration av varje arbetsstation.
Snapshot är ett verktyg för att automatiskt skapa skärmbilder av en mobilapp på olika enheter och språk. Snapshot kör UI-tester på iOS-simulatorer och tar skärmbilder vid varje teststeg. Resultaten sparas i katalogen fastlane/screenshots och kan laddas upp till App Store Connect via deliver.
För Android utför screengrab en liknande funktion på Android-emulatorer. Båda verktygen stöder lokalisering — skärmbilder skapas för varje språk, vilket förenklar förberedelsen av material för publicering i flerspråkiga appbutiker.
För iOS-projekt konfigureras Fastlane via Gemfile (installation av gem fastlane) och Fastfile i katalogen fastlane. Den initiala konfigurationen görs med kommandot fastlane init, som skapar den grundläggande katalogstrukturen, begär App Store Connect-data och genererar en Fastfile-mall med grundläggande lanes.
Nyckelkommandot för iOS — fastlane match — måste köras först för att få certifikat och provisioning profiles. Efter framgångsrik signering kan Fastlane bygga appen (gym), köra tester (scan) och ladda upp binärfilen (pilot eller deliver).
# Fastfile för iOS-app
default_platform(:ios)
lane :build do
cocoapods
scan(scheme: 'App', devices: ['iPhone 15'])
gym(scheme: 'App', export_method: 'app-store')
end
lane :deploy do
match(type: 'appstore')
build
pilot(skip_waiting_for_build_processing: true)
slack(message: 'Ny version uppladdad till TestFlight')
end
För arbete med TestFlight använd pilot-action — den laddar upp IPA och hanterar testare. Fastlane stöder upload_to_testflight (synonym för pilot) och hanterar automatiskt väntan på Apples bearbetning av builden, vilket kan ta 5 till 30 minuter.
För Android-projekt konfigureras Fastlane på liknande sätt, men istället för Xcode-verktyg används Gradle och Android SDK. Fastlane för Android stöder byggande av APK och AAB, signering via apksigner eller jarsigner, körning av instrumentella tester och uppladdning till Google Play Console via Supply-action.
Den viktigaste skillnaden — Android-bygge kräver inte certifikathantering via match (Android-signering hanteras via Keystore, som lagras separat). Fastlane för Android använder gradle-action för att köra alla Gradle-uppgifter och supply-action för att arbeta med Google Play.
# Fastfile för Android-app
default_platform(:android)
lane :build do
gradle(task: 'clean assembleRelease')
gradle(task: 'testReleaseUnitTest')
end
lane :deploy do
build
supply(
track: 'internal',
aab: 'app/build/outputs/bundle/release/app-release.aab'
)
end
För arbete med Google Play Console krävs ett Google Cloud-tjänstkonto med åtkomst till Google Play API. Fastlane tar emot JSON-nyckeln för tjänstkontot via miljövariabeln SUPPLY_JSON_KEY eller parametern json_key i supply-action. Publiceringsspåret kan vara internal, alpha, beta eller production.
Fastlane integreras med alla CI/CD-system som kan köra Ruby-skript: Jenkins, Travis CI, GitHub Actions, GitLab CI, Bitrise och CircleCI. Integrationen består av att installera gem fastlane och köra kommandot fastlane [lane_name] i pipeline-skriptfasen.
För CI/CD är det viktigt att ställa in miljövariabler för lagring av känslig data: MATCH_PASSWORD (lösenord för certifikatkryptering), FASTLANE_USER (Apple ID), FASTLANE_PASSWORD (Apple ID-lösenord). I Travis CI krypteras variabler via travis encrypt, i GitHub Actions — via Secrets repository.
Rekommenderad praxis — använd fastlane match i CI/CD med readonly-flaggan för att förhindra oavsiktliga ändringar i certifikatrepositoryn. För Android använd Keystore, kodad i Base64 och sparad i en miljövariabel, som dekrypteras och sparas i en temporär fil i before_install-steget.
Fastlane Match är ett verktyg för att automatisera hanteringen av iOS-certifikat och provisioning profiles, en av de mest värdefulla funktionerna i Fastlane för team. Match skapar en krypterad Git-repository (eller använder en befintlig) där alla certifikat och profiler lagras, synkroniserade mellan utvecklare och CI/CD-servrar.
Match stöder fem typer av profiler: development, adhoc, appstore, enterprise och developer_id. Varje typ lagras i en separat katalog inuti repositoryt. Kommandot fastlane match development installerar development-certifikat på den lokala datorn och fastlane match appstore installerar App Store-profiler för bygge på CI.
# Användning av Match i Fastfile
lane :setup_signing do
match(
type: 'appstore',
readonly: true,
git_branch: 'main'
)
end
lane :update_profiles do
match(
type: 'development',
force: true,
app_identifier: ['com.example.app', 'com.example.app.watchkitapp']
)
end
Säkerheten för Match säkerställs genom kryptering av alla filer före commit till Git. Krypteringslösenordet ställs in via miljövariabeln MATCH_PASSWORD och måste vara detsamma för alla teammedlemmar. Match använder OpenSSL för kryptering och lagrar inte lösenordet i klartext i repositoryt.
Vanliga frågor
Fastlane är ett Open Source-automatiseringsverktyg för iOS- och Android-appar. Det automatiserar byggande, testning, kodsignering och leverans till App Store och Google Play via en enda konfigurationsfil Fastfile och en uppsättning inbyggda verktyg.
De huvudsakliga Fastlane-verktygen: scan (tester), gym (iOS-bygge), match (certifikat), deliver (App Store), pilot (TestFlight), snapshot (skärmbilder), supply (Google Play) och frameit (ramar för skärmbilder). Varje verktyg är tillgängligt som action inuti en lane eller från kommandoraden.
Installera gem fastlane, kör fastlane init i projektroten. Konfigurera Fastfile med lanes för bygge (gym) och tester (scan). Ställ in Match för certifikathantering via Git-repository. Lägg till en deploy-lane med pilot eller deliver för uppladdning till App Store Connect.
Kör fastlane init med package name. Använd gradle-action för att köra Gradle-uppgifter (assembleRelease, testReleaseUnitTest). Konfigurera Keystore via miljövariabler. Använd supply-action för att ladda upp AAB eller APK till Google Play Console på önskat spår.
Installera gem fastlane på CI/CD-servern och lägg till kommandot fastlane [lane_name] i pipeline-skriptfasen. Ställ in miljövariablerna FASTLANE_USER, FASTLANE_PASSWORD och MATCH_PASSWORD i CI/CD:s hemliga variabler. Använd match readonly för CI för att undvika oavsiktliga ändringar av certifikat.
Sammanfattning
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å