Настройка AppCenter для CI/CD мобильного приложения под ключ

При разработке мобильного приложения на SwiftUI с интеграцией Firebase и push-уведомлениями ручная сборка каждой версии для iOS и Android отнимает до 4 часов в день. Через две недели после старта проекта команда тратит 30% времени на повторяющиеся операции: подпись кода, конфигурацию окружения, загр

Разработка и поддержка любых видов мобильных приложений:

Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

Это лишь некоторые из типы мобильных приложений, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента.

Услуги, которые мы предлагаем
Показано 1 из 1Все 1734 услуг
Настройка AppCenter для CI/CD мобильного приложения под ключ
Средний
~2-3 дня

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

Часто задаваемые вопросы

Последние работы

  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    895
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    782
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1216
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    1079
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    1002
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    597

При разработке мобильного приложения на SwiftUI с интеграцией Firebase и push-уведомлениями ручная сборка каждой версии для iOS и Android отнимает до 4 часов в день. Через две недели после старта проекта команда тратит 30% времени на повторяющиеся операции: подпись кода, конфигурацию окружения, загрузку в TestFlight. Мы настраиваем CI/CD в Microsoft AppCenter, чтобы каждая сборка проходила автоматически: по пушу в Git, с прогоном UI-тестов на реальных устройствах и отправкой билда тестировщикам. Весь процесс занимает 2–5 дней, а не недели. За это время вы получаете надёжный конвейер, который сокращает время релиза на 70% и снижает затраты на инфраструктуру тестирования до 50%.

Почему AppCenter — удобный выбор для CI/CD?

AppCenter решает три ключевые задачи: сборка, тестирование на реальных устройствах (Device Farm) и дистрибуция. В отличие от Jenkins или GitLab CI, вам не нужно управлять инфраструктурой — сервис предоставляет виртуальные машины macOS и Windows, а также устройства iOS/Android. Согласно документации Microsoft, AppCenter поддерживает все популярные фреймворки: SwiftUI, Jetpack Compose, Flutter и React Native. Единственное ограничение — сложные матричные сборки и кастомные образы, но мы решаем это комбинацией с внешним CI (например, GitHub Actions).

Как настроить сборку через YAML-конфигурацию?

AppCenter поддерживает appcenter.yml — это наиболее гибкий способ описать пайплайн. Пример для iOS-приложения с ручной подписью:

trigger: branches: include: - main - release/* pool: vmImage: macos-latest steps: - task: InstallAppleCertificate@2 inputs: certSecureFile: distribution.p12 certPwd: $(P12_PASSWORD) - task: InstallAppleProvisioningProfile@1 inputs: provisioningProfileLocation: secureFiles provProfileSecureFile: MyApp_AppStore.mobileprovision - script: | cd ios && pod install --repo-update displayName: 'Install CocoaPods' - task: Xcode@5 inputs: actions: 'build' scheme: 'MyApp' xcWorkspacePath: 'ios/MyApp.xcworkspace' exportPath: '$(Build.ArtifactStagingDirectory)' exportOptions: 'plist' exportOptionsPlist: 'ios/ExportOptions.plist' signingOption: 'manual' signingIdentity: '$(APPLE_CERTIFICATE_SIGNING_IDENTITY)' provisioningProfileUuid: '$(APPLE_PROV_PROFILE_UUID)' 

Если YAML недоступен, используем appcenter-post-build.sh — он вызывается после успешной сборки. Например, для отправки билда в группу QA:

#!/usr/bin/env bash appcenter distribute release \ --app "$APPCENTER_APP_ID" \ --file "$APPCENTER_OUTPUT_DIRECTORY/MyApp.ipa" \ --group "QA Team" \ --release-notes "Build $APPCENTER_BUILD_ID" curl -X POST "$SLACK_WEBHOOK_URL" \ -H 'Content-type: application/json' \ --data "{\"text\":\"New build $APPCENTER_BUILD_ID is available\"}" 

Переменные APPCENTER_* — встроенные окружения, доступные на этапе сборки.

Как защитить секреты и управлять окружением?

В Build Configuration → Environment Variables добавляются ключи. Sensitive значения помечаются как «Secret» — они шифруются и не выводятся в логи. Стандартный набор:

Переменная Назначение
P12_PASSWORD Пароль к iOS-сертификату
KEYSTORE_PASSWORD Пароль к Android keystore
FIREBASE_APP_ID ID приложения в Firebase
SLACK_WEBHOOK_URL URL для уведомлений в Slack

AppCenter гарантирует, что секреты не попадут в логи сборки.

Как тестировать на реальных устройствах?

Device Farm запускает XCUITest и Espresso на физических iPhone и Android-смартфонах. Команда загрузки тестов:

appcenter test run xcuitest \ --app "MyOrg/MyApp-iOS" \ --devices "MyOrg/top-ios-devices" \ --test-series "main" \ --locale "ru_RU" \ --build-dir DerivedData/Build/Products/Debug-iphoneos 

Устройства выбираются в UI — можно задать приоритетные модели и версии ОС. Это быстрее, чем настраивать собственный ферм: экономия до 30% бюджета на тестирование.

Платформа Доступные устройства Ограничения
iOS iPhone 12-14, iPad Pro Максимум 30 мин на тест
Android Samsung Galaxy S21-S24, Pixel 5-7 До 5 устройств в параллель

Какие проблемы решает настройка AppCenter?

Первая проблема — ручная подпись кода для iOS. Каждый релиз требует обновления provisioning profiles и сертификатов. Мы автоматизируем этот процесс через InstallAppleCertificate и InstallAppleProvisioningProfile, что исключает ошибки при сборке.

Вторая проблема — отсутствие тестов на реальных устройствах. Симулятор не всегда воспроизводит баги, связанные с памятью или сетью. Device Farm запускает тесты на 5+ физических девайсах, что увеличивает покрытие на 40%.

Третья проблема — задержки в дистрибуции. Ручная отправка билда тестировщикам через TestFlight занимает до часа. Post-build скрипт отправляет IPA/APK напрямую в группы AppCenter, уведомляя команду в Slack за минуту.

Структура проекта в AppCenter

Для каждого приложения создаётся отдельная «app» внутри организации. Типичная иерархия:

MyCompany (Organization) ├── MyApp-iOS (App) │ ├── Build (CI) │ ├── Test (Device Farm) │ ├── Distribute │ └── Diagnostics (Crashes) └── MyApp-Android (App) ├── Build (CI) ├── Distribute └── Diagnostics 

Такая структура упрощает управление доступами — тестировщики видят только свои приложения.

Ограничения AppCenter CI и как их обойти

AppCenter не поддерживает матричные сборки (несколько конфигураций в одной работе) и кастомные Docker-образы для Android. В таких случаях мы оставляем в AppCenter только дистрибуцию и крашлитику, а сложный пайплайн реализуем через GitHub Actions. Вы получаете лучший из обоих миров: гибкость внешнего CI и удобство AppCenter для доставки тестировщикам.

Что входит в настройку CI/CD?

По завершении работ вы получаете:

  • Рабочий пайплайн в AppCenter с триггерами на main/release ветки
  • Настроенную подпись для iOS (сертификаты и provisioning profiles)
  • UI-тесты на Device Farm (до 5 устройств каждой платформы)
  • Автоматическую дистрибуцию в группы тестировщиков (TestFlight/Google Play по запросу)
  • Документацию по процессу и контакты поддержки

Сроки и стоимость

Ориентировочный срок — от 2 до 5 дней в зависимости от сложности проекта. Стоимость рассчитывается индивидуально после оценки. Наша команда имеет 5+ лет опыта в мобильной разработке и реализовала CI/CD для 20+ проектов. Закажите настройку — свяжитесь с нами для получения консультации и оценки вашего проекта. Получите консультацию по настройке CI/CD уже сегодня.