CI/CD для мобільної розробки: Fastlane, Codemagic і Bitrise

TRUETECH займається розробкою, підтримкою та обслуговуванням мобільних додатків iOS, Android, PWA. Маємо великий досвід та експертизу для публікації мобільних додатків до популярних маркетів Google Play, App Store, Amazon, AppGallery та інші.

Розробка та підтримка будь-яких видів мобільних додатків:

Інформаційні та розважальні мобільні програми
Новинки, ігри, довідники, онлайн-каталоги, погодні, фітнес та здоров'я, туристичні, освітні, соціальні мережі та месенджери, квіз, блоги та подкасти, форуми, агрегатори
Мобільні програми електронної комерції
Інтернет-магазини, B2B-додатки, маркетплейси, онлайн-обмінники, кешбек-сервіси, біржі, дропшиппінг-платформи, програми лояльності, доставка їжі та товарів, платіжні системи
Мобільні програми для управління бізнес-процесами
CRM-системи, ERP-системи, управління проектами, інструменти для команди продажів, облік фінансів, управління виробництвом, логістика та доставка, управління персоналом, системи моніторингу даних
Мобільні програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, платформи надання електронних послуг, платформи кешбеку, відеохостинги, тематичні портали, платформи онлайн-бронювання та запису, платформи онлайн-торгівлі

Це лише деякі з типів мобільних додатків, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 30 з 32Усі 1735 послуг
Налаштування Code Signing через Fastlane Match
Середній
від 1 дня до 3 днів
Часті запитання

Наші компетенції:

Етапи розробки

Останні роботи

  • image_mobile-applications_feedme_467_0.webp
    Розробка мобільного додатка для компанії FEEDME
    792
  • image_mobile-applications_xoomer_471_0.webp
    Розробка мобільного додатку для компанії XOOMER
    671
  • image_mobile-applications_rhl_428_0.webp
    Розробка мобільного додатку для компанії RHL
    1097
  • image_mobile-applications_zippy_411_0.webp
    Розробка мобільного додатку для компанії ZIPPY
    969
  • image_mobile-applications_affhome_429_0.webp
    Розробка мобільного додатку для компанії Affhome
    914
  • image_mobile-applications_flavors_409_0.webp
    Розробка мобільного додатку для компанії FLAVORS
    495

CI/CD для мобільних додатків: Fastlane, Codemagic, Bitrise та GitHub Actions

Ручна збірка та публікація мобільного додатку у 2025 році — це джерело помилок та витраченого часу. Забутий bump версії, неправильний provisioning profile, test-flight збірка з debug-логами в production — все це наслідки відсутності автоматизації.

Fastlane: Основа Автоматизації

Fastlane — де-факто стандарт для автоматизації iOS та Android збірок. Fastfile описує lanes — послідовності actions. Типова iOS-конфігурація:

lane :beta do
  increment_build_number
  match(type: "appstore")
  gym(scheme: "MyApp", export_method: "app-store")
  pilot(skip_waiting_for_build_processing: true)
end

match — це ключ до управління сертифікатами та provisioning profiles. Зберігає їх зашифрованими в git-репозиторії, синхронізує між машинами та CI. Альтернатива ручному управлінню в Xcode, яке ломається при кожному оновленні macOS. Важливо: match потребує окремого git-репозиторію (не основного), і пароль шифрування (MATCH_PASSWORD) зберігається як CI secret.

Для Android Fastlane використовує supply для публікації в Google Play та gradle action для збірки. Signing через keystore з змінними окруження — ніколи не коммітимо keystore в репозиторій.

Головна біль Fastlane: Ruby окруження. bundle exec fastlane через Bundler — обов'язково, інакше конфлікти версій гемів ломають CI в самий невідповідний момент.

GitHub Actions для Мобілки

GitHub Actions підходить якщо репозиторій уже на GitHub. Для iOS потрібен macOS runner — runs-on: macos-14 (Apple Silicon). GitHub-hosted macOS runners є, але вони повільніші та дорожче Linux. Self-hosted Mac mini у хмарі (MacStadium, Hetzner) під контролем Actions runner — більш економічний підхід для частих збірок.

Типовий workflow для iOS:

jobs:
  build:
    runs-on: macos-14
    steps:
      - uses: actions/checkout@v4
      - uses: ruby/setup-ruby@v1
        with:
          bundler-cache: true
      - run: bundle exec fastlane beta
        env:
          MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }}
          APP_STORE_CONNECT_API_KEY_KEY: ${{ secrets.ASC_API_KEY }}

App Store Connect API Key замість Apple ID + пароля — обов'язково. Apple ID з 2FA не працює надійно на CI. API Key створюється в App Store Connect → Users and Access → Keys.

Codemagic та Bitrise: Managed CI для Мобілки

Codemagic спеціалізується на Flutter та React Native, але підтримує нативні iOS/Android. Killer feature — конфігурація codemagic.yaml та macOS M2 машини без додаткової настройки. Code Signing автоматизований через UI: завантажуєш сертифікат та profile, Codemagic їх застосовує. Зручно для команд без DevOps.

Bitrise — більш enterprise-орієнтована платформа з багатим каталогом Steps (готові action-блоки). Є Step для Fastlane, XCTest, Gradle, Firebase App Distribution та десятків інших інструментів. Workflow Editor з візуальним інтерфейсом знижує поріг входу.

Платформа iOS Runner Конфігурація Найкращий Сценарій
GitHub Actions macOS-hosted/self-hosted YAML Вже на GitHub, потрібна гнучкість
Codemagic macOS M2 managed YAML / UI Flutter, швидкий старт
Bitrise macOS managed Visual + YAML Велика команда, enterprise
Fastlane (local) Будь-який macOS Fastfile (Ruby) Автоматизація локально + CI

Distribution: TestFlight, Firebase App Distribution, Diawi

Для внутрішнього тестування iOS — TestFlight через pilot (Fastlane) або App Store Connect API. Для швидкої розповсюджень ad-hoc збірок без TestFlight — Firebase App Distribution (iOS + Android) або Diawi.

Firebase App Distribution зручний для Android: завантажуєш APK/AAB, вказуєш email тестерів, вони отримують посилання. На iOS обмежений ad-hoc профілями — UDID пристроїв потрібно додавати вручну, що незручно для великих груп тестувальників.

Версіонування та Тегування

Правило: кожна збірка, яка ушла на TestFlight або в Firebase, повинна мати унікальний build number і бути привязана до git-тегу. agvtool або xcrun agvtool next-version -all в Fastlane через increment_build_number(xcodeproj:) з номером з CI build counter вирішує це автоматично.

Терміни настройки: базовий CI/CD пайплайн з автозбіркою та розповсюдженням у TestFlight/Firebase — 3-5 днів. Повна автоматизація з кількома окруженнями (dev/staging/production), автоматичним тестуванням та ветвленням за git flow — 2-3 тижні.