Fastlane: що це, автоматизація збірок та публікацій

Автор: IT Sectr Опубліковано: 2026-02-13 Час читання: 10 хв

Fastlane — інструмент автоматизації збірок та публікацій мобільних застосунків для iOS та Android. Fastlane керує підписом коду, збіркою, запуском тестів, створенням скріншотів та вивантаженням до App Store Connect і Google Play Console. Це стандарт де-факто для CI/CD у мобільній розробці.

Основні висновки

  • Fastlane автоматизує весь пайплайн мобільного релізу: збірку, тестування, підпис та публікацію однією командою
  • Fastfile — конфігураційний файл на Ruby, у якому описуються lanes — іменовані сценарії автоматизації
  • Підтримка iOS та Android — Fastlane працює з Xcode, Gradle, App Store Connect, Google Play, TestFlight та Firebase
  • match та sigh — керування сертифікатами та provisioning profiles для iOS-розробки
  • Інтеграція з CI/CD — Fastlane вбудовується в GitHub Actions, GitLab CI, Bitrise, Jenkins та CircleCI

Fastlane — що це

Fastlane — це open-source інструмент, який автоматизує рутинні завдання мобільної розробки: збірку застосунку, запуск тестів, створення скріншотів, керування сертифікатами та вивантаження білдів до TestFlight, App Store та Google Play. Fastlane написаний на Ruby та поширюється через RubyGems командою gem install fastlane.

Fastlane з'явився у 2015 році як iOS-інструмент, але швидко розширився на Android. Сьогодні це екосистема з десятків actions — вбудованих команд, які можна комбінувати в сценарії, звані lanes. Кожен lane виконує конкретне завдання: наприклад, build_release збирає релізну версію, а deploy_beta вивантажує білд у TestFlight.

Fastlane використовують такі компанії, як Uber, Airbnb, Snapchat, Twitter та Shopify. За даними опитування 2024 року, понад 60% iOS-розробників застосовують Fastlane у своїх проєктах. Інструмент підтримує як локальний запуск, так і інтеграцію з хмарними CI-системами, що робить його стандартом де-факто для мобільного CI/CD.

ruby
# Встановлення Fastlane
sudo gem install fastlane -NV

# Ініціалізація в проєкті
fastlane init

Після ініціалізації Fastlane створює директорію fastlane/ з трьома файлами: Fastfile (сценарії), Appfile (налаштування застосунку) та Matchfile (налаштування сертифікатів). Ця структура залишається єдиною для обох платформ — iOS та Android.

Fastfile та lanes

Основний конфігураційний файл Fastlane — Fastfile. Він знаходиться в директорії fastlane/ у корені проєкту. Fastfile пишеться на Ruby: кожен lane — це іменований блок із послідовністю actions. Lane може приймати параметри, викликати інші lanes та повертати значення.

ruby
# fastlane/Fastfile — приклад для 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

Кожен lane запускається командою fastlane ios beta або fastlane ios release. Fastfile підтримує змінні, умови, цикли та виклик зовнішніх скриптів — це повноцінний Ruby-файл. Розробники можуть перевикористовувати код через private_lane (локальні методи) та import з інших Fastfile.

Fastlane надає понад 200 вбудованих actions для більшості завдань. Якщо потрібного action немає, можна написати власний на Ruby або викликати shell-команду через sh("..."). Actions можуть приймати параметри — налаштування збірки, шляхи, токени доступу — та повертати результат для використання в наступних кроках.

Автоматизація iOS-збірок

Fastlane для iOS вирішує три ключові проблеми: керування сертифікатами та provisioning profiles, збірка IPA через Xcode та публікація до App Store Connect і TestFlight. Кожне з цих завдань покривається окремим action.

match — action для керування сертифікатами. Він зберігає всі сертифікати та provisioning profiles у зашифрованому Git-репозиторії. Кожен розробник та CI-сервер використовують один і той самий набір файлів, що виключає конфлікти та проблеми з простроченими сертифікатами. Match автоматично оновлює профілі при додаванні нових пристроїв.

sigh — створює та завантажує provisioning profile через Apple Developer Portal. Використовується, коли потрібно швидко отримати профіль для конкретного типу: development, ad-hoc або appstore.

gym — збірка IPA. Gym обгортає xcodebuild з оптимальними параметрами, автоматично вибирає схему, конфігурацію, export options та створює підписаний IPA. Приклад: gym(scheme: "MyApp", export_method: "app-store").

pilot — керування TestFlight. Завантажує білд, додає тестувальників, відстежує статус рев'ю. deliver — повна публікація в App Store, включаючи метадані, скріншоти, ціну та версії.

ruby
# Збірка та публікація 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

Для роботи з App Store Connect потрібні токени доступу. Fastlane підтримує два способи автентифікації: App Store Connect API Key (рекомендований) та Apple ID з двофакторною автентифікацією. API-ключі зручніші для CI/CD, оскільки не потребують інтерактивного введення пароля.

ActionПризначенняАналог вручну
matchКерування сертифікатами та профілямиApple Developer Portal
sighСтворення provisioning profileXcode + Developer Portal
gymЗбірка IPAxcodebuild + xcrun
pilotЗавантаження в TestFlightXcode Organizer
deliverПублікація в App StoreApp Store Connect Web
scanЗапуск UI-тестівxcodebuild test

Автоматизація Android-збірок

На Android Fastlane автоматизує збірку через Gradle, підпис APK та AAB, завантаження до Google Play Console та Firebase App Distribution.

gradle — основний action для збірки Android. Він викликає Gradle wrapper з потрібними завданнями: gradle(task: "assembleRelease") або gradle(task: "bundleRelease") для AAB. Можна передавати прапорці, змінні середовища та шлях до gradle.properties.

supply — завантаження APK або AAB до Google Play Console. Supply керує версіями, треками (internal, alpha, beta, production), release notes, ціною та країною-поширення. Приклад: supply(track: "beta", release_status: "completed").

screengrab — створення скріншотів для Google Play. Запускає instrumentation-тести, які роблять скріншоти екранів застосунку на різних пристроях та мовах. Отримані скріншоти завантажуються через supply.

ruby
# Збірка та публікація Android-застосунку
lane :deploy_android do
  gradle(task: "clean bundleRelease")
  supply(
    track: "beta",
    release_status: "completed",
    version_code: 42
  )
end
ActionПризначенняАналог вручну
gradleЗбірка через Gradle./gradlew assembleRelease
supplyЗавантаження в Google PlayGoogle Play Console Web
screengrabСтворення скріншотівРучний скріншот + ImageMagick
firebase_app_distributionДистрибуція через FirebaseFirebase Console Upload

Інтеграція з CI/CD

Fastlane спроєктований для роботи в CI/CD-пайплайнах. Він коректно обробляє non-interactive режим, змінні середовища та артефакти збірки. Нижче — приклади інтеграції з популярними CI-системами.

У GitHub Actions Fastlane запускається як Ruby-скрипт. Типовий воркфлоу: встановлення Ruby та Fastlane, налаштування ключів (сертифікати, API-токени через secrets), запуск lane. Для iOS потрібен macOS-раннер; Android працює на ubuntu-latest.

У GitLab CI Fastlane використовується в .gitlab-ci.yml з аналогічною схемою: встановлення залежностей, запуск fastlane, передача артефактів. GitLab CI підтримує macOS та Linux раннери.

Bitrise — спеціалізована CI/CD для мобільних застосунків — має вбудовану підтримку Fastlane. Bitrise Workflow може викликати Fastlane Step або запускати довільні скрипти з fastlane. Bitrise керує сертифікатами через свій Code Signing-менеджер.

ruby
# Fastfile для CI/CD з умовним запуском тестів
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

Важливий аспект CI/CD-інтеграції — зберігання секретів. Fastlane використовує файл .env через dotenv та змінні середовища. Для iOS критичні змінні: MATCH_PASSWORD, FASTLANE_APPLE_API_KEY, FASTLANE_APPLE_API_KEY_ID. Для Android: SUPPLY_JSON_KEY_DATA — вміст сервісного акаунта Google Play.

Популярні actions Fastlane

Fastlane включає понад 200 вбудованих actions. Нижче — огляд найбільш затребуваних із зазначенням платформи та призначення.

ActionПлатформаОпис
gymiOSЗбірка IPA з оптимізованими параметрами xcodebuild
matchiOSСинхронізація сертифікатів та provisioning profiles через Git
pilotiOSЗавантаження білда в TestFlight та керування тестувальниками
deliveriOSПублікація застосунку в App Store з метаданими
scaniOSЗапуск unit- та UI-тестів з генерацією звіту
gradleAndroidЗапуск Gradle-задач: assemble, bundle, test
supplyAndroidЗавантаження APK та AAB у Google Play Console
screengrabAndroidАвтоматичні скріншоти для Google Play
firebase_app_distributionAndroidПоширення білдів через Firebase
snapshotiOSАвтоматичні скріншоти на симуляторах для App Store
increment_build_numberiOSАвтоінкремент build number у Xcode project
appcenter_uploadОбидвіЗавантаження білда в App Center

Для пошуку потрібного action використовується команда fastlane action [ім'я], яка виводить документацію, параметри та приклади. Повний список доступний локально: fastlane actions.

Fastlane також підтримує plugins — community-розширення, які додають нові actions. Плагіни встановлюються через fastlane add_plugin [ім'я] та доступні в реєстрі RubyGems. Приклади популярних плагінів: fastlane-plugin-versioning (керування версіями), fastlane-plugin-sentry (завантаження debug symbols у Sentry), fastlane-plugin-teams (сповіщення в Microsoft Teams).

Поширені запитання

Fastlane — що це і для чого він потрібен?

Fastlane — це інструмент автоматизації збірок та публікацій мобільних застосунків. Він потрібен, щоб замінити ручні операції — збірку, підпис, завантаження в магазини — однією командою. Fastlane скорочує час релізу з годин до хвилин та виключає людські помилки при публікації.

Чи можна використовувати Fastlane тільки для Android або тільки для iOS?

Так. Fastlane підтримує обидві платформи незалежно. Для iOS потрібен macOS, для Android достатньо Linux. В одному Fastfile можна розділити lanes за платформами: platform :ios do ... end та platform :android do ... end.

Як Fastlane керує сертифікатами iOS?

Через action match. Він зберігає зашифровані сертифікати та provisioning profiles у Git-репозиторії. Кожен розробник клонує репозиторій, match розшифровує файли за паролем зі змінної MATCH_PASSWORD та встановлює їх у зв'язку ключів. Це вирішує проблему "на моїй машині збирається".

Fastlane працює з Firebase App Distribution?

Так. Fastlane має вбудований action firebase_app_distribution для завантаження APK та IPA у Firebase App Distribution. Також доступний firebase_app_distribution_add_testers для додавання тестувальників. Альтернатива — action appcenter_upload для App Center.

Як встановити Fastlane на CI-сервер?

Fastlane встановлюється через RubyGems: gem install fastlane -NV. Для iOS потрібен macOS з Xcode; для Android — Linux або macOS з JDK та Android SDK. У GitHub Actions є готовий action ruby/setup-ruby для встановлення Ruby та Fastlane. Змінні середовища передаються через secrets CI-системи.

Чим Fastlane відрізняється від Bitrise або Jenkins?

Fastlane — це бібліотека та CLI для автоматизації завдань збірки та публікації. Bitrise та Jenkins — це CI/CD-платформи цілком. Fastlane працює всередині них: Jenkins запускає Fastlane як крок пайплайну, Bitrise викликає Fastlane через спеціальний Step. Fastlane не замінює CI-систему, а доповнює її мобільною специфікою.

Підсумок

  • Fastlane — open-source інструмент для автоматизації збірок, тестування та публікації мобільних застосунків під iOS та Android
  • Fastfile — конфігураційний Ruby-файл, у якому описуються lanes — сценарії з послідовністю actions
  • match + gym + pilot — стандартний пайплайн для iOS: керування сертифікатами, збірка IPA, завантаження в TestFlight
  • gradle + supply — стандартний пайплайн для Android: збірка через Gradle, завантаження в Google Play Console
  • CI/CD-інтеграція — Fastlane вбудовується в GitHub Actions, GitLab CI, Bitrise, Jenkins та CircleCI через змінні середовища
  • 200+ actions — вбудовані команди для підпису, збірки, тестування, скріншотів, публікації та сповіщень
  • Плагіни — community-розширення додають нові actions: версіонування, Sentry, сповіщення в месенджери

Ми розробимо мобільний застосунок під ключ

IT Sectr створює застосунки для iOS та Android для стартапів і бізнесу з 2017 року. Ми проконсультуємо вас і запропонуємо найкраще рішення.

Обговорити проект

Читайте також