Bitrise — ключові поняття, Workflows та безперервна інтеграція

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

Bitrise — це спеціалізована CI/CD платформа для мобільної розробки, побудована навколо готових Steps — попередньо налаштованих модулів для збирання, підпису та публікації застосунків iOS та Android. За даними Bitrise, 2024, платформа підтримує понад 400 готових Steps та інтегрується з Xcode, Gradle, Fastlane, Firebase та App Store Connect.

Головне

  • Bitrise — CI/CD платформа, спеціалізована для мобільних проєктів на iOS, Android, Flutter та React Native
  • Workflow — послідовність Steps, що визначає пайплайн збирання, тестування та розгортання
  • Step — готовий модуль для конкретного завдання: встановлення залежностей, запуск тестів, code signing
  • Code Signing — Bitrise автоматично керує сертифікатами та provisioning profiles для iOS
  • Secrets — захищене зберігання токенів, ключів та паролів для доступу до сторонніх сервісів

Що таке Bitrise?

Bitrise — це CI/CD платформа, запущена у 2016 році та повністю сфокусована на мобільній розробці. На відміну від універсальних рішень GitHub Actions та GitLab CI, Bitrise спочатку проєктувалася для автоматизації збирання застосунків iOS та Android. Платформа працює в хмарі та надає власні хостинговані runner'и з macOS та Linux. Bitrise підтримує всі популярні мобільні стеки: Swift, Kotlin, Flutter, React Native, Cordova та Xamarin.

Основна перевага Bitrise — попередньо налаштовані Step templates для типових завдань мобільної розробки: Xcode build, Gradle assemble, Fastlane, Firebase Distribution, TestFlight, Google Play. Налаштування пайплайну займає хвилини через візуальний редактор, а YAML-конфігурація генерується автоматично у файлі bitrise.yml. Для досвідчених користувачів доступний YAML-редактор з автодоповненням.

Архітектура Bitrise: Workflows та Steps

Архітектура Bitrise будується на двох ключових поняттях: Workflow та Step. Workflow — це послідовність Steps, що визначає пайплайн. Кожен проєкт може мати кілька Workflows: primary (основне збирання), deploy (публікація), test (лише тести). Workflow запускається за тригерами: push, PR, tag або за розкладом. Workflow можна запускати вручну з веб-інтерфейсу, що корисно для ad-hoc збирань.

Step — це атомарний модуль, що виконує одне завдання. Кроки можна перетягувати у візуальному редакторі, змінювати їх порядок та конфігурацію. Bitrise надає Steps для Xcode Archive & Export, Gradle Runner, CocoaPods Install, Firebase Distribution, Slack-сповіщень. Спільнота також створює Steps — вони доступні через Step Library. Кожен Step має обов'язкові та опціональні input-параметри, а також output-змінні, які можуть бути використані наступними Steps.

Bitrise підтримує концепцію Pipeline — об'єднання кількох Workflows в один пайплайн. Pipeline може включати primary збирання для всіх платформ та окремі workflow для розгортання та тестування. Це дозволяє створити складні CI/CD-процеси, де одне збирання запускає інше. Stacks Bitrise визначають попередньо встановлене ПЗ на runner: Xcode, Android SDK, Flutter, Node.js та інші інструменти.

Популярні Steps для мобільних проєктів

  • Xcode Archive & Export — збирання та експорт IPA з керуванням provisioning profile
  • Gradle Runner — запуск Gradle завдань з аргументами та кешуванням
  • Flutter Build — збирання Flutter-застосунків для iOS та Android
  • Firebase App Distribution — публікація збирання для тестувальників
  • Certificate and Profile Installer — автоматичне встановлення сертифікатів code signing

Інтеграція Bitrise з Git-репозиторіями

Bitrise інтегрується з GitHub, GitLab, Bitbucket та Azure DevOps. При підключенні репозиторію Bitrise автоматично виявляє тип проєкту (iOS, Android, Flutter) та пропонує шаблон Workflow. Для приватних репозиторіїв Bitrise запитує доступ через OAuth або SSH-ключ. Підтримується підключення кількох репозиторіїв до одного застосунку.

Після підключення Bitrise створює webhook в репозиторії для автоматичного запуску збирань при push та PR. Кожне збирання отримує унікальний номер, логи та артефакти. Інтерфейс дозволяє переглядати історію збирань, порівнювати зміни та перезапускати невдалі білди. Bitrise також підтримує scheduled builds для регулярних нічних збирань та інтеграцію з Jira для трекінгу комітів.

Code Signing та публікація в App Store та Google Play

Code signing для iOS — одна з найскладніших завдань CI/CD, і Bitrise вирішує її максимально просто. Платформа зберігає сертифікати та provisioning profiles у зашифрованому вигляді, автоматично встановлює їх у потрібний keychain перед збиранням та експортує підписаний IPA. Step Certificate and Profile Installer завантажує файли зі сховища Bitrise та налаштовує Xcode. Підтримуються типи Development, AdHoc, AppStore та Enterprise сертифікатів.

Для публікації в App Store Connect Bitrise надає Steps для завантаження IPA через Xcode Archive & Export. Google Play публікація використовує Gradle Runner з підписом через Keystore, після чого APK/AAB завантажується в Google Play Console через Google Play Deploy Step. Для Firebase App Distribution достатньо вказати Firebase Token та групу тестувальників. Bitrise автоматизує оновлення версій збирання (version number та build number) перед кожною публікацією.

Налаштування code signing в Bitrise

Сертифікати завантажуються в розділ Code Signing веб-інтерфейсу: P12 з приватним ключем, provisioning profile (.mobileprovision), Keystore (.jks/.keystore) для Android. Bitrise автоматично встановлює iOS сертифікати в keychain при кожному запуску Workflow та експортує підписаний застосунок. Для Android достатньо завантажити Keystore файл — Bitrise передає його Gradle через змінні середовища при збиранні.

Приклад конфігурації Bitrise для Flutter

Розглянемо Workflow для Flutter-застосунку, який збирає та публікує збирання для iOS та Android. Bitrise автоматично визначає Flutter-проєкт та пропонує відповідні Steps. Workflow включає встановлення Flutter, кешування pub-cache, збирання, тестування та розгортання. Для iOS-збирання додатково потрібні сертифікати code signing, які Bitrise підвантажує автоматично.

При збиранні Flutter-застосунків Bitrise підтримує окрему конфігурацію для платформ. Android-збирання виконується на Linux runner з Flutter SDK, iOS — на macOS runner. Workflow може включати умовні Steps: build_android та build_ios, які запускаються лише на відповідних платформах. Для React Native проєктів Bitrise пропонує аналогічний набір Steps з npm/nvm та Metro bundler.

yaml
format_version: 13
default_step_lib_source: https://github.com/bitrise-io/bitrise-steplib.git

trigger_map:
- push_branch: main
  workflow: primary

workflows:
  primary:
    steps:
    - activate-ssh-key@4:
        run_if: true
    - git-clone@8: {}
    - flutter-installer@0:
        inputs:
        - version: 3.24.0
    - flutter-build@0:
        inputs:
        - platform: both
        - ios_output_type: archive
    - deploy-to-bitrise-io@2: {}

Кастомний Step для розгортання

Після збирання можна додати Step Firebase App Distribution для iOS та Android. Step приймає firebase_token, app_id та testers_group. Bitrise підставляє значення з Secrets — безпечне зберігання токенів гарантує, що вони не потраплять в логи.

yaml
- firebase-app-distribution@1:
    inputs:
    - firebase_token: $FIREBASE_TOKEN
    - app_id: $FIREBASE_IOS_APP_ID
    - testers_group: qa-team
    - release_notes: |
        Build $BITRISE_BUILD_NUMBER

Secrets та керування середовищем

Правильне керування конфіденційними даними — основа безпеки CI/CD процесів. Bitrise Secrets зашифровані та недоступні для читання після збереження. При створенні нового застосунку Bitrise пропонує імпортувати secrets з іншого проєкту або задати вручну. Для великих команд доступна функція Environment Groups — централізоване керування змінними та secrets для групи застосунків.

Bitrise надає вбудоване сховище Secrets для конфіденційних даних: API-ключі, токени Firebase, паролі Keystore, Apple ID. Secrets задаються парами ключ-значення у веб-інтерфейсі та маскуються в логах збирання. Доступні на рівні застосунку та на рівні Workflow. Secrets не можна прочитати після збереження — їх можна лише перезаписати.

Environment Variables (без позначки Secret) використовуються для конфігурацій: версія Xcode, шлях до проєкту, схема збирання. Змінні середовища Bitrise (BITRISE_BUILD_NUMBER, BITRISE_APP_TITLE) надають мета-інформацію про збирання. Secrets шифруються при зберіганні та розшифровуються лише на runner під час виконання Workflow. Для групового керування змінними Bitrise підтримує Environment Groups — набори змінних, застосовні до кількох застосунків одночасно.

Особливої уваги заслуговує керування iOS сертифікатами через Bitrise. Платформа автоматично встановлює P12 та provisioning profile в системний keychain перед збиранням. Для Android використовується Keystore файл, який завантажується в Code Signing секцію. Кожен файл сертифіката зберігається в зашифрованому вигляді та розшифровується лише під час білда.

Приклад використання Secrets

yaml
- google-play-deploy@3:
    inputs:
    - package_name: com.example.app
    - service_account_json_key: $SERVICE_ACCOUNT_KEY
    - app_file: $BITRISE_APK_PATH

Стеки та середовища Bitrise

Bitrise пропонує різні стеки (stack) для збирання — попередньо встановлені образи з інструментами та SDK. Доступні стеки для Xcode (версії 14, 15, 16 з iOS SDK 17, 18), для Android (з різними версіями SDK та NDK), для Flutter, React Native та Kotlin Multiplatform. Кожен стек має опис попередньо встановлених інструментів та версій.

Вибір стека впливає на час збирання та сумісність з проєктом. Bitrise регулярно оновлює стеки, додаючи нові версії інструментів. Можна зафіксувати конкретну версію стека в bitrise.yml, щоб уникнути неочікуваних змін при оновленні платформи. Для кастомних залежностей використовується Script Step, що встановлює необхідні пакети перед основним збиранням. Bitrise також підтримує Docker-образи для Linux stacks, що дозволяє використовувати кастомне середовище для Android-збирань.

Часті запитання

Скільки коштує Bitrise?

Bitrise пропонує безкоштовний план з 90 хвилинами збирання на місяць та одним одночасним білдом. Developer ($79/міс) включає 3000 хвилин, до 5 одночасних білдів та всі інтеграції. Enterprise — індивідуальне ціноутворення.

Які платформи підтримує Bitrise?

Bitrise підтримує iOS (Swift, Objective-C), Android (Kotlin, Java), Flutter, React Native, Cordova, Ionic та Xamarin. Для кожної платформи є попередньо встановлені інструменти та шаблони Workflow.

Чи потрібен macOS runner для iOS в Bitrise?

Bitrise надає macOS runners для iOS-збирання без додаткового налаштування. Платформа сама керує macOS інфраструктурою — runner обирається автоматично залежно від стека застосунку.

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

Bitrise зберігає сертифікати в зашифрованому вигляді та автоматично встановлює їх в keychain перед збиранням через Step Certificate and Profile Installer. Для Android аналогічно — Keystore завантажується та використовується Gradle при підписі.

Чи можна кастомізувати Steps в Bitrise?

Так, Bitrise підтримує кастомні Steps через Script Step (bash-скрипт) та кастомні Step Library з GitHub. Можна також створити власний Step за документацією Bitrise та опублікувати в Step Library.

Підсумки

  • Bitrise — спеціалізована CI/CD платформа для мобільної розробки з готовими Steps для iOS та Android
  • Workflow — послідовність Steps, налаштовувана у візуальному редакторі або в bitrise.yml
  • Step — модуль для конкретного завдання: збирання Xcode, Gradle, публікація в Firebase, Slack-сповіщення
  • Code Signing — автоматичне керування iOS сертифікатами та Android Keystore без ручних операцій
  • Secrets — захищене зберігання токенів та ключів з маскуванням в логах збирання
  • Інтеграція з GitHub, GitLab, Bitbucket через webhooks з авто-визначенням типу проєкту
  • macOS runners для iOS-збирання надаються Bitrise — не потрібна власна інфраструктура

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

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

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

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