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

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

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

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

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

Услуги, которые мы предлагаем
Показано 1 из 1Все 1735 услуг
Настройка Appcenter для CI/CD мобильного приложения
Средний
~2-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

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

Microsoft AppCenter — это не только дистрибуция тестовых билдов. Полноценный CI/CD для мобильных приложений: сборка по триггеру из Git, тестирование на реальных устройствах через Device Farm, публикация в TestFlight и Google Play, crash analytics. Всё в одном сервисе, без настройки инфраструктуры.

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

Для каждого приложения (iOS и Android) создаётся отдельная «app» в AppCenter. Организация называется «org» — под ней группируются все apps. Типичная структура:

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

Настройка Build через YAML

AppCenter поддерживает appcenter-post-clone.sh, appcenter-pre-build.sh, appcenter-post-build.sh — скрипты, которые запускаются на соответствующих этапах. Более гибкий подход — appcenter.yml (Preview):

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)'

Post-build скрипты

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

#!/usr/bin/env bash

# Отправка в App Distribution
appcenter distribute release \
  --app "$APPCENTER_APP_ID" \
  --file "$APPCENTER_OUTPUT_DIRECTORY/MyApp.ipa" \
  --group "QA Team" \
  --release-notes "Build $APPCENTER_BUILD_ID"

# Уведомление в Slack
curl -X POST "$SLACK_WEBHOOK_URL" \
  -H 'Content-type: application/json' \
  --data "{\"text\":\"New build $APPCENTER_BUILD_ID is available\"}"

APPCENTER_OUTPUT_DIRECTORY, APPCENTER_BUILD_ID — встроенные переменные окружения AppCenter.

Переменные окружения и секреты

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

  • P12_PASSWORD — пароль к сертификату
  • KEYSTORE_PASSWORD — Android keystore
  • FIREBASE_APP_ID — для Crashlytics/App Distribution
  • SLACK_WEBHOOK_URL — уведомления

Тестирование на реальных устройствах

AppCenter Device Farm позволяет запускать UI-тесты (XCUITest, Espresso) на реальных устройствах:

# Upload и запуск XCUITest
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

Device sets создаются в AppCenter UI — можно выбрать конкретные модели и версии iOS/Android.

Ограничения AppCenter CI

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

Процесс

Создание apps в AppCenter → подключение репозитория → настройка Build Configuration → добавление signing (для iOS) → написание post-build скриптов → настройка Distribution → тест-запуск → документация.

Срок: 2–3 дня. Стоимость рассчитывается индивидуально.