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 [name] и доступны в реестре RubyGems. Примеры популярных плагинов: fastlane-plugin-versioning (управление версиями), fastlane-plugin-sentry (загрузка debug symbols в Sentry), fastlane-plugin-teams (уведомления в Microsoft Teams).

Frequently Asked Questions

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-систему, а дополняет её мобильной спецификой.

Summary

  • 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 года. Мы проконсультируем вас и предложим наилучшее решение.

Обсудить проект

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