Собрать iOS-приложение на локальной машине — рутина, которая отнимает время у команды. Когда разработчиков пять и больше, каждый коммит превращается в ожидание сборки. Мы автоматизируем этот процесс через Bitrise — облачный CI/CD, заточенный под мобильную разработку. Его главное отличие от GitHub Actions или GitLab CI: все шаги (Steps) — готовые блоки из Workflow Editor с UI-настройкой. Большинство мобильных сценариев настраивается без написания yaml с нуля. Для команд без DevOps-эксперта это снижает порог входа в три раза.
Workflow Editor: структура bitrise.yml
Bitrise хранит конфигурацию в bitrise.yml в корне репозитория. Редактировать можно и через UI, и напрямую в yaml. Базовый workflow для iOS:
workflows: primary: steps: - activate-ssh-key: {} - git-clone: {} - certificate-and-profile-installer: {} - cocoapods-install: inputs: - is_cache_disabled: "false" - xcode-test: inputs: - scheme: MyApp - simulator_device: iPhone 15 - xcode-archive: inputs: - scheme: MyApp - distribution_method: ad-hoc - deploy-to-bitrise-io: {} - firebase-app-distribution: inputs: - app: $FIREBASE_APP_ID - groups: qa-team certificate-and-profile-installer — Bitrise-специфичный Step, который скачивает сертификаты из Bitrise Code Signing вкладки. Туда загружаются .p12 и .mobileprovision файлы через UI или API. Это проще чем fastlane match, но означает хранение сертификатов на серверах Bitrise.
Как Bitrise управляет code signing?
В Bitrise есть встроенный Code Signing Manager. Загружаем через Web UI:
- Distribution certificate (.p12 + passphrase)
- Provisioning profile (.mobileprovision)
xcode-archive Step автоматически использует загруженные сертификаты через BITRISE_CERTIFICATE_URL и BITRISE_CERTIFICATE_PASSPHRASE environment-переменные. Xcode Automatic Signing при этом отключаем в xcode-archive:
- xcode-archive: inputs: - automatic_code_signing: api-key # или certificate api-key режим использует App Store Connect API Key — лучший вариант, так как не истекает, в отличие от сертификата.
Как Bitrise управляет секретами?
Bitrise предоставляет отдельный раздел Secrets для хранения токенов, паролей и ключей. Переменные типа $FIREBASE_APP_ID подставляются во все Steps. Не рекомендуется хранить secrets в bitrise.yml — используйте вкладку Workflow → Secrets. Наши инженеры настраивают ротацию ключей раз в квартал.
Почему Bitrise выгоднее self-hosted CI?
| Критерий | Bitrise | Self-hosted (Jenkins) |
|---|---|---|
| Время настройки | 2–4 дня | 2–3 недели |
| Поддержка macOS | Встроенные стеки Xcode | Нужно настраивать runner с macOS |
| Code Signing | Автоматическая установка | Ручная настройка |
| Кэширование SPM/CocoaPods | Встроенные Steps | Настройка вручную |
| Интеграция с App Store | 1 клик | Через скрипты |
Bitrise сокращает время развертывания CI/CD на 70% по сравнению с Jenkins. При этом у облачного решения есть ограничения: раннеры только на macOS (Xcode 15/16), и при интенсивной разработке на команду из пяти человек облачные минуты заканчиваются быстро. Если нужна сборка каждого коммита и ночные UI-тесты на реальных устройствах — комбинируем Bitrise с Device Testing (Firebase Test Lab или собственный device farm).
Как настроить параллельные workflow?
Bitrise поддерживает несколько workflows с разными триггерами:
trigger_map: - push_branch: main workflow: deploy - push_branch: "feature/*" workflow: test-only - pull_request_target_branch: main workflow: pr-check test-only workflow запускает только тесты без архивации — экономит до 10 минут на каждый push в feature-ветку. Кэширование зависимостей ускоряет сборку ещё на 30%:
| Тип кэша | Ключ | Путь |
|---|---|---|
| CocoaPods | cocoapods-{{ checksum "Podfile.lock" }} |
./Pods |
| SPM | spm-{{ checksum "Package.resolved" }} |
~/Library/Developer/Xcode/DerivedData |
Типичные ошибки при внедрении Bitrise
- Несоответствие bundle ID в provisioning profile и
PRODUCT_BUNDLE_IDENTIFIERв xcconfig —xcode-archiveпадает сNo profile for... signed for running on device. - CocoaPods-версия на Bitrise-стеке отличается от локальной — добавляем
gem install cocoapods --version X.X.Xв Script Step. - Не установлен
BITRISE_SCHEME—xcode-testиспользует первую доступную схему, что может быть не той. - Проблемы с кэшем: если
Podfile.lockне меняется, кэш не обновляется — лечится добавлениемis_cleanup: true.
Что входит в настройку от нас
- Анализ текущего проекта и выбор оптимальной конфигурации.
- Создание
bitrise.ymlс workflows для сборки, тестирования и деплоя. - Настройка code signing через Code Signing Manager.
- Интеграция с Git-репозиторием и настройка trigger map.
- Кэширование зависимостей для ускорения билдов.
- Документация по конфигурации и обучение команды.
- Поддержка на этапе внедрения (2 недели).
Сроки: базовая настройка (test + archive + TestFlight) — 2–4 дня. Полная конфигурация с параллельными workflows, Device Testing, кэшированием, Slack/Jira-интеграцией — 1–1.5 недели. Стоимость рассчитывается индивидуально. Закажите настройку CI/CD для iOS — мы гарантируем стабильный пайплайн. Свяжитесь с нами для консультации и оценки вашего проекта.
Наш опыт: мы автоматизируем CI/CD для мобильных приложений более пяти лет. За это время реализовали более 50 проектов на iOS и Android. Используем Bitrise, GitHub Actions, GitLab CI — подбираем инструмент под задачи клиента. Гарантируем стабильность пайплайна и поддержку после внедрения.







