Fastlane: co to jest, automatyzacja buildów i publikacji

Autor: IT Sectr Opublikowano: 2026-02-13 Czas czytania: 10 min

Fastlane — narzędzie do automatyzacji buildów i publikacji aplikacji mobilnych na iOS i Android. Fastlane zarządza podpisywaniem kodu, budowaniem, uruchamianiem testów, tworzeniem zrzutów ekranu i przesyłaniem do App Store Connect i Google Play Console. Jest standardem de facto dla CI/CD w tworzeniu aplikacji mobilnych.

Główne wnioski

  • Fastlane automatyzuje cały pipeline wydania mobilnego: budowanie, testowanie, podpisywanie i publikację jedną komendą
  • Fastfile — plik konfiguracyjny w Ruby, w którym opisane są lanes — nazwane scenariusze automatyzacji
  • Wsparcie dla iOS i Android — Fastlane działa z Xcode, Gradle, App Store Connect, Google Play, TestFlight i Firebase
  • match i sigh — zarządzanie certyfikatami i provisioning profiles dla iOS
  • Integracja z CI/CD — Fastlane integruje się z GitHub Actions, GitLab CI, Bitrise, Jenkins i CircleCI

Fastlane — co to jest

Fastlane — to open-source narzędzie, które automatyzuje rutynowe zadania tworzenia aplikacji mobilnych: budowanie aplikacji, uruchamianie testów, tworzenie zrzutów ekranu, zarządzanie certyfikatami, przesyłanie buildów do TestFlight, App Store i Google Play. Fastlane jest napisany w Ruby i rozpowszechniany przez RubyGems komendą gem install fastlane.

Fastlane pojawił się w 2015 roku jako narzędzie dla iOS, ale szybko rozszerzył się na Androida. Dziś to ekosystem dziesiątek actions — wbudowanych komend, które można łączyć w scenariusze, nazywane lanes. Każdy lane wykonuje konkretne zadanie: na przykład build_release buduje wersję release, a deploy_beta przesyła build do TestFlight.

Fastlane jest używany przez takie firmy jak Uber, Airbnb, Snapchat, Twitter i Shopify. Według ankiety z 2024 roku, ponad 60% programistów iOS używa Fastlane w swoich projektach. Narzędzie wspiera zarówno lokalne uruchamianie, jak i integrację z chmurowymi systemami CI, co czyni go standardem de facto dla mobilnego CI/CD.

ruby
# Instalacja Fastlane
sudo gem install fastlane -NV

# Inicjalizacja w projekcie
fastlane init

Po inicjalizacji Fastlane tworzy katalog fastlane/ z trzema plikami: Fastfile (scenariusze), Appfile (ustawienia aplikacji) i Matchfile (ustawienia certyfikatów). Ta struktura pozostaje taka sama dla obu platform — iOS i Android.

Fastfile i lanes

Główny plik konfiguracyjny Fastlane — Fastfile. Znajduje się w katalogu fastlane/ w głównym katalogu projektu. Fastfile jest pisany w Ruby: każdy lane to nazwany blok z sekwencją actions. Lane może przyjmować parametry, wywoływać inne lanes i zwracać wartości.

ruby
# fastlane/Fastfile — przykład dla 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żdy lane uruchamiany jest komendą fastlane ios beta lub fastlane ios release. Fastfile obsługuje zmienne, warunki, pętle i wywoływanie zewnętrznych skryptów — to pełnoprawny plik Ruby. Programiści mogą ponownie używać kodu poprzez private_lane (lokalne metody) i import z innych Fastfile.

Fastlane udostępnia ponad 200 wbudowanych actions dla większości zadań. Jeśli potrzebnego action nie ma, można napisać własny w Ruby lub wywołać komendę shell przez sh("..."). Actions mogą przyjmować parametry — ustawienia budowania, ścieżki, tokeny dostępu — i zwracać wynik do użycia w kolejnych krokach.

Automatyzacja buildów iOS

Fastlane dla iOS rozwiązuje trzy kluczowe problemy: zarządzanie certyfikatami i provisioning profiles, budowanie IPA przez Xcode oraz publikację w App Store Connect i TestFlight. Każde z tych zadań jest obsługiwane przez osobny action.

match — action do zarządzania certyfikatami. Przechowuje wszystkie certyfikaty i provisioning profiles w zaszyfrowanym repozytorium Git. Każdy programista i serwer CI używają tego samego zestawu plików, co eliminuje konflikty i problemy z wygasłymi certyfikatami. Match automatycznie aktualizuje profile przy dodawaniu nowych urządzeń.

sigh — tworzy i pobiera provisioning profile przez Apple Developer Portal. Używane, gdy trzeba szybko uzyskać profil dla konkretnego typu: development, ad-hoc lub appstore.

gym — budowanie IPA. Gym opakowuje xcodebuild z optymalnymi parametrami, automatycznie wybiera schemat, konfigurację, export options i tworzy podpisany IPA. Przykład: gym(scheme: "MyApp", export_method: "app-store").

pilot — zarządzanie TestFlight. Przesyła build, dodaje testerów, śledzi status recenzji. deliver — pełna publikacja w App Store, w tym metadane, zrzuty ekranu, cena i wersje.

ruby
# Budowa i publikacja aplikacji iOS
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

Do pracy z App Store Connect wymagane są tokeny dostępu. Fastlane obsługuje dwa sposoby autoryzacji: App Store Connect API Key (zalecany) i Apple ID z uwierzytelnianiem dwuskładnikowym. Klucze API są wygodniejsze dla CI/CD, ponieważ nie wymagają interaktywnego wprowadzania hasła.

ActionPrzeznaczenieRęczny odpowiednik
matchZarządzanie certyfikatami i profilamiApple Developer Portal
sighTworzenie provisioning profileXcode + Developer Portal
gymBudowanie IPAxcodebuild + xcrun
pilotPrzesyłanie do TestFlightXcode Organizer
deliverPublikacja w App StoreApp Store Connect Web
scanUruchamianie testów UIxcodebuild test

Automatyzacja buildów Android

Na Androidzie Fastlane automatyzuje budowanie przez Gradle, podpisywanie APK i AAB, przesyłanie do Google Play Console i Firebase App Distribution.

gradle — główny action do budowania na Androida. Wywołuje Gradle wrapper z potrzebnymi zadaniami: gradle(task: "assembleRelease") lub gradle(task: "bundleRelease") dla AAB. Można przekazywać flagi, zmienne środowiskowe i ścieżkę do gradle.properties.

supply — przesyłanie APK lub AAB do Google Play Console. Supply zarządza wersjami, ścieżkami (internal, alpha, beta, production), notatkami wydania, ceną i krajami dystrybucji. Przykład: supply(track: "beta", release_status: "completed").

screengrab — tworzenie zrzutów ekranu dla Google Play. Uruchamia testy instrumentation, które robią zrzuty ekranu aplikacji na różnych urządzeniach i językach. Uzyskane zrzuty są przesyłane przez supply.

ruby
# Budowa i publikacja aplikacji Android
lane :deploy_android do
  gradle(task: "clean bundleRelease")
  supply(
    track: "beta",
    release_status: "completed",
    version_code: 42
  )
end
ActionPrzeznaczenieRęczny odpowiednik
gradleBudowanie przez Gradle./gradlew assembleRelease
supplyPrzesyłanie do Google PlayGoogle Play Console Web
screengrabTworzenie zrzutów ekranuRęczny zrzut + ImageMagick
firebase_app_distributionDystrybucja przez FirebaseFirebase Console Upload

Integracja z CI/CD

Fastlane jest zaprojektowany do pracy w pipeline'ach CI/CD. Poprawnie obsługuje tryb non-interactive, zmienne środowiskowe i artefakty budowania. Poniżej — przykłady integracji z popularnymi systemami CI.

W GitHub Actions Fastlane uruchamiany jest jako skrypt Ruby. Typowy workflow: instalacja Ruby i Fastlane, konfiguracja kluczy (certyfikaty, tokeny API przez secrets), uruchomienie lane. Dla iOS wymagany jest runner macOS; Android działa na ubuntu-latest.

W GitLab CI Fastlane używany jest w .gitlab-ci.yml z podobnym schematem: instalacja zależności, uruchomienie fastlane, przekazanie artefaktów. GitLab CI obsługuje runner'y macOS i Linux.

Bitrise — specjalistyczne CI/CD dla aplikacji mobilnych — ma wbudowane wsparcie dla Fastlane. Bitrise Workflow może wywołać Fastlane Step lub uruchamiać dowolne skrypty z fastlane. Bitrise zarządza certyfikatami przez swój Code Signing Manager.

ruby
# Fastfile dla CI/CD z warunkowym uruchamianiem testów
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

Ważnym aspektem integracji CI/CD jest przechowywanie sekretów. Fastlane używa pliku .env przez dotenv i zmienne środowiskowe. Dla iOS krytyczne zmienne to: MATCH_PASSWORD, FASTLANE_APPLE_API_KEY, FASTLANE_APPLE_API_KEY_ID. Dla Androida: SUPPLY_JSON_KEY_DATA — zawartość konta serwisowego Google Play.

Popularne actions Fastlane

Fastlane zawiera ponad 200 wbudowanych actions. Poniżej — przegląd najpopularniejszych z podaniem platformy i przeznaczenia.

ActionPlatformaOpis
gymiOSBudowanie IPA z zoptymalizowanymi parametrami xcodebuild
matchiOSSynchronizacja certyfikatów i provisioning profiles przez Git
pilotiOSPrzesyłanie builda do TestFlight i zarządzanie testerami
deliveriOSPublikacja aplikacji w App Store z metadanymi
scaniOSUruchamianie testów unit i UI z generowaniem raportu
gradleAndroidUruchamianie zadań Gradle: assemble, bundle, test
supplyAndroidPrzesyłanie APK i AAB do Google Play Console
screengrabAndroidAutomatyczne zrzuty ekranu dla Google Play
firebase_app_distributionAndroidDystrybucja buildów przez Firebase
snapshotiOSAutomatyczne zrzuty ekranu na symulatorach dla App Store
increment_build_numberiOSAutoinkrementacja numeru build w projekcie Xcode
appcenter_uploadObiePrzesyłanie builda do App Center

Do wyszukiwania potrzebnego action używa się komendy fastlane action [nazwa], która wyświetla dokumentację, parametry i przykłady. Pełna lista dostępna lokalnie: fastlane actions.

Fastlane obsługuje również plugins — rozszerzenia społecznościowe, które dodają nowe actions. Wtyczki instalowane są przez fastlane add_plugin [nazwa] i dostępne w rejestrze RubyGems. Przykłady popularnych wtyczek: fastlane-plugin-versioning (zarządzanie wersjami), fastlane-plugin-sentry (przesyłanie debug symbols do Sentry), fastlane-plugin-teams (powiadomienia w Microsoft Teams).

Frequently Asked Questions

Fastlane — co to jest i do czego służy?

Fastlane — to narzędzie do automatyzacji buildów i publikacji aplikacji mobilnych. Służy do zastąpienia ręcznych operacji — budowania, podpisywania, przesyłania do sklepów — jedną komendą. Fastlane skraca czas wydania z godzin do minut i eliminuje błędy ludzkie przy publikacji.

Czy można używać Fastlane tylko dla Androida lub tylko dla iOS?

Tak. Fastlane obsługuje obie platformy niezależnie. Dla iOS wymagany jest macOS, dla Android wystarczy Linux. W jednym Fastfile można rozdzielić lanes według platform: platform :ios do ... end i platform :android do ... end.

Jak Fastlane zarządza certyfikatami iOS?

Przez action match. Przechowuje zaszyfrowane certyfikaty i provisioning profiles w repozytorium Git. Każdy programista klonuje repozytorium, match odszyfrowuje pliki hasłem ze zmiennej MATCH_PASSWORD i instaluje je w pęku kluczy. Rozwiązuje to problem „na mojej maszynie się buduje”.

Czy Fastlane działa z Firebase App Distribution?

Tak. Fastlane ma wbudowany action firebase_app_distribution do przesyłania APK i IPA do Firebase App Distribution. Dostępny jest również firebase_app_distribution_add_testers do dodawania testerów. Alternatywą jest action appcenter_upload dla App Center.

Jak zainstalować Fastlane na serwerze CI?

Fastlane instaluje się przez RubyGems: gem install fastlane -NV. Dla iOS wymagany jest macOS z Xcode; dla Android — Linux lub macOS z JDK i Android SDK. W GitHub Actions jest gotowy action ruby/setup-ruby do instalacji Ruby i Fastlane. Zmienne środowiskowe przekazywane są przez secrets systemu CI.

Czym Fastlane różni się od Bitrise lub Jenkins?

Fastlane — to biblioteka i CLI do automatyzacji zadań budowania i publikacji. Bitrise i Jenkins — to platformy CI/CD jako całość. Fastlane działa wewnątrz nich: Jenkins uruchamia Fastlane jako krok pipeline'u, Bitrise wywołuje Fastlane przez specjalny Step. Fastlane nie zastępuje systemu CI, lecz uzupełnia go o specyfikę mobilną.

Summary

  • Fastlane — open-source narzędzie do automatyzacji buildów, testowania i publikacji aplikacji mobilnych na iOS i Android
  • Fastfile — konfiguracyjny plik Ruby, w którym opisane są lanes — scenariusze z sekwencją actions
  • match + gym + pilot — standardowy pipeline dla iOS: zarządzanie certyfikatami, budowanie IPA, przesyłanie do TestFlight
  • gradle + supply — standardowy pipeline dla Android: budowanie przez Gradle, przesyłanie do Google Play Console
  • Integracja CI/CD — Fastlane integruje się z GitHub Actions, GitLab CI, Bitrise, Jenkins i CircleCI przez zmienne środowiskowe
  • 200+ actions — wbudowane komendy do podpisywania, budowania, testowania, zrzutów ekranu, publikacji i powiadomień
  • Wtyczki — rozszerzenia społecznościowe dodające nowe actions: versioning, Sentry, powiadomienia w komunikatorach

Opracujemy aplikację mobilną pod klucz

IT Sectr tworzy aplikacje na iOS i Androida dla startupów i firm od 2017 roku. Doradzimy Ci i zaproponujemy najlepsze rozwiązanie.

Omów projekt

Przeczytaj również