Fastlane — це інструмент з відкритим кодом для автоматизації збірки, тестування та публікації iOS та Android додатків. Замість ручного виконання десятка команд для підпису, збірки та завантаження в магазин, розробник описує весь процес в Fastfile і запускає однією командою. За даними Fastlane Docs, 2025, інструмент використовується в більш ніж 1,5 млн проектів по всьому світу. Fastlane об’єднує утиліти для роботи з App Store Connect, Google Play Console та системами підпису коду.
Головне
Fastlane — це інструмент автоматизації мобільних збірок, написаний на Ruby та розповсюджуваний під ліцензією MIT. Він автоматизує рутинні завдання мобільного розробника: збірку додатка, запуск тестів, створення скріншотів, підпис коду та завантаження бінарних файлів в App Store або Google Play. Замість 15–20 ручних команд розробник запускає одну fastlane команду з іменем сценарію.
Fastlane працює як обгортка над утилітами Xcode (xcodebuild, xcrun) та Android SDK (gradlew, apksigner, bundletool), надаючи єдиний інтерфейс для обох платформ. Це особливо цінно для команд, які підтримують iOS та Android версії одного додатка — однакові Fastfile можуть описувати збірки для обох платформ з мінімальними відмінностями в параметрах.
За даними GitHub, Fastlane має понад 39 тисяч зірок і є стандартом автоматизації в мобільній розробці. Інструмент підтримується спільнотою та компанією Google — Fastlane інтегровано в Firebase як рекомендований спосіб доставки Android додатків в Google Play Console.
Архітектура Fastlane побудована на трьох рівнях: actions (базові команди), lanes (сценарії) та інструменти (спеціалізовані утиліти). Actions — це окремі функції Fastlane, кожна з яких виконує конкретну дію: створення скріншота, збірку IPA, завантаження в TestFlight. Lanes об’єднують кілька actions в послідовний сценарій, описаний в Fastfile.
Actions — це будівельні блоки Fastlane. Кожна action приймає параметри та виконує одне завдання. Наприклад, action gym збирає iOS додаток, scan запускає тести, pilot завантажує білд в TestFlight. Всього в Fastlane понад 200 вбудованих actions, документація по кожній доступна через команду fastlane action [назва].
Якщо вбудованих actions недостатньо, розробник може створити custom action на Ruby та підключити його в Fastfile. Custom actions поширюються через плагіни Fastlane, які публікуються в Rubygems та встановлюються через файл FastfilePlugin в корені проекту.
Lane — це іменований сценарій автоматизації, який об’єднує кілька actions в логічну послідовність. Lane може викликати інші lanes (private lanes), передавати параметри та обробляти помилки. Це дозволяє будувати ієрархію сценаріїв: базова lane збірки, lane деплою, lane повного CI/CD циклу.
Fastlane включає набір спеціалізованих інструментів, кожен з яких вирішує конкретну задачу мобільної автоматизації. Інструменти запускаються як actions всередині lanes або безпосередньо з командного рядка. Розглянемо чотири ключові інструменти, що покривають основні потреби CI/CD для iOS та Android.
| Інструмент | Призначення | Команда |
|---|---|---|
| scan | Запуск Unit та UI тестів на симуляторі iOS | fastlane scan |
| gym | Збірка IPA або APP файлу для iOS | fastlane gym |
| match | Синхронізація сертифікатів та provisioning profiles через Git | fastlane match |
| deliver | Завантаження бінарника та метаданих в App Store Connect | fastlane deliver |
| snapshot | Автоматична генерація скріншотів на різних пристроях | fastlane snapshot |
Scan спрощує запуск тестів Xcode, автоматично вибираючи підходячий симулятор та форматуючи звіт. Gym збирає додаток з оптимальними прапорціями компіляції та підтримує exportOptions.plist для різних типів збірки (development, adhoc, appstore). Deliver дозволяє завантажувати не лише бінарник, але й скріншоти, опис, версії та ціни через єдиний файл метаданих.
Інструмент Match заслуговує окремої уваги — він вирішує проблему зберігання та синхронізації iOS сертифікатів в команді. Match шифрує та зберігає сертифікати та provisioning profiles в Git репозиторії, а розробники отримують їх автоматично при запуску fastlane match. Це виключає ручне налаштування кожного робочого місця.
Snapshot — інструмент для автоматичного створення скріншотів мобільного додатка на різних пристроях та мовах. Snapshot запускає UI тести на симуляторах iOS, роблячи знімки екрана на кожному кроці тесту. Результати зберігаються в директорію fastlane/screenshots та можуть бути завантажені в App Store Connect через deliver.
Для Android screengrab виконує аналогічну функцію на емуляторах Android. Обидва інструменти підтримують локалізацію — скріншоти створюються для кожної мови, що спрощує підготовку матеріалів для публікації в багатомовних магазинах додатків.
Для iOS проектів Fastlane налаштовується через Gemfile (встановлення гема fastlane) та Fastfile в директорії fastlane. Первинне налаштування виконується командою fastlane init, яка створює базову структуру директорій, запитує дані App Store Connect та генерує шаблон Fastfile з основними lanes.
Ключова команда для iOS — fastlane match, яка повинна бути виконана першою для отримання сертифікатів та provisioning profiles. Після успішного підпису Fastlane може збирати додаток (gym), запускати тести (scan) та завантажувати бінарник (pilot або deliver).
# Fastfile для iOS додатка
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: 'Нову версію завантажено в TestFlight')
end
Для роботи з TestFlight використовуйте pilot action — він завантажує IPA та керує тестувальниками. Fastlane підтримує upload_to_testflight (синонім pilot) та автоматично обробляє очікування обробки білда Apple, що може займати від 5 до 30 хвилин.
Для Android проектів Fastlane налаштовується аналогічно, але замість інструментів Xcode використовуються Gradle та Android SDK. Fastlane для Android підтримує збірку APK та AAB, підпис через apksigner або jarsigner, запуск інструментальних тестів та завантаження в Google Play Console через Supply action.
Ключова відмінність — Android збірка не потребує керування сертифікатами через match (підпис Android керується через Keystore, який зберігається окремо). Fastlane для Android використовує gradle action для запуску будь-яких завдань Gradle та supply action для роботи з Google Play.
# Fastfile для Android додатка
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
Для роботи з Google Play Console потрібен сервісний акаунт Google Cloud з доступом до API Google Play. Fastlane приймає JSON ключ сервісного акаунта через змінну середовища SUPPLY_JSON_KEY або параметр json_key в action supply. Трек публікації може бути internal, alpha, beta або production.
Fastlane інтегрується з будь-якими CI/CD системами, які можуть виконувати Ruby скрипти: Jenkins, Travis CI, GitHub Actions, GitLab CI, Bitrise та CircleCI. Інтеграція зводиться до встановлення гема fastlane та запуску команди fastlane [lane_name] в стадії script пайплайну.
Для CI/CD важливо налаштувати змінні середовища для зберігання чутливих даних: MATCH_PASSWORD (пароль шифрування сертифікатів), FASTLANE_USER (Apple ID), FASTLANE_PASSWORD (пароль Apple ID). В Travis CI змінні шифруються через travis encrypt, в GitHub Actions — через Secrets репозиторію.
Рекомендована практика — використовувати fastlane match в CI/CD з прапорцією readonly, щоб не допускати випадкових змін у репозиторії сертифікатів. Для Android використовуйте Keystore, закодований в Base64 та збережений в змінній середовища, який розшифровується та зберігається в тимчасовий файл на етапі before_install.
Fastlane Match — це інструмент для автоматизації керування iOS сертифікатами та provisioning profiles, одна з найцінніших функцій Fastlane для команд. Match створює зашифрований Git репозиторій (або використовує існуючий), де зберігає всі сертифікати та профілі, синхронізуючи їх між розробниками та CI/CD серверами.
Match підтримує п’ять типів профілів: development, adhoc, appstore, enterprise та developer_id. Кожен тип зберігається в окремій директорії всередині репозиторію. Команда fastlane match development встановлює розробницькі сертифікати на локальній машині, а fastlane match appstore — App Store профілі для збірки на CI.
# Використання Match в 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
Безпека Match забезпечується шифруванням усіх файлів перед комітом в Git. Пароль шифрування задається через змінну середовища MATCH_PASSWORD та повинен бути однаковим для всіх членів команди. Match використовує OpenSSL для шифрування та не зберігає пароль у відкритому вигляді в репозиторії.
Часто задавані питання
Fastlane — це інструмент автоматизації з відкритим кодом для iOS та Android додатків. Він автоматизує збірку, тестування, підпис коду та доставку в App Store та Google Play через єдиний конфігураційний файл Fastfile та набір вбудованих інструментів.
Основні інструменти Fastlane: scan (тести), gym (збірка iOS), match (сертифікати), deliver (App Store), pilot (TestFlight), snapshot (скріншоти), supply (Google Play) та frameit (рамки для скріншотів). Кожен інструмент доступний як action всередині lane або з командного рядка.
Встановіть gem fastlane, виконайте fastlane init в корені проекту. Налаштуйте Fastfile з lanes для збірки (gym) та тестів (scan). Налаштуйте Match для керування сертифікатами через Git репозиторій. Додайте lane деплою з pilot або deliver для завантаження в App Store Connect.
Виконайте fastlane init із зазначенням package name. Використовуйте gradle action для запуску завдань Gradle (assembleRelease, testReleaseUnitTest). Налаштуйте Keystore через змінні середовища. Використовуйте supply action для завантаження AAB або APK в Google Play Console на потрібний трек.
Встановіть gem fastlane на CI/CD сервері та додайте команду fastlane [lane_name] в стадію script пайплайну. Налаштуйте змінні середовища FASTLANE_USER, FASTLANE_PASSWORD та MATCH_PASSWORD в секретних змінних CI/CD. Використовуйте match readonly в CI, щоб уникнути випадкових змін сертифікатів.
Підсумки
Ми розробимо мобільний застосунок під ключ
IT Sectr створює застосунки для iOS та Android для стартапів і бізнесу з 2017 року. Ми проконсультуємо вас і запропонуємо найкраще рішення.
Читайте також