App Center CI/CD Setup for Mobile App

NOVASOLUTIONS.TECHNOLOGY is engaged in the development, support and maintenance of iOS, Android, PWA mobile applications. We have extensive experience and expertise in publishing mobile applications in popular markets like Google Play, App Store, Amazon, AppGallery and others.
Development and support of all types of mobile applications:
Information and entertainment mobile applications
News apps, games, reference guides, online catalogs, weather apps, fitness and health apps, travel apps, educational apps, social networks and messengers, quizzes, blogs and podcasts, forums, aggregators
E-commerce mobile applications
Online stores, B2B apps, marketplaces, online exchanges, cashback services, exchanges, dropshipping platforms, loyalty programs, food and goods delivery, payment systems.
Business process management mobile applications
CRM systems, ERP systems, project management, sales team tools, financial management, production management, logistics and delivery management, HR management, data monitoring systems
Electronic services mobile applications
Classified ads platforms, online schools, online cinemas, electronic service platforms, cashback platforms, video hosting, thematic portals, online booking and scheduling platforms, online trading platforms

These are just some of the types of mobile applications we work with, and each of them may have its own specific features and functionality, tailored to the specific needs and goals of the client.

Showing 1 of 1 servicesAll 1735 services
App Center CI/CD Setup for Mobile App
Medium
~2-3 business days
FAQ
Our competencies:
Development stages
Latest works
  • image_mobile-applications_feedme_467_0.webp
    Development of a mobile application for FEEDME
    756
  • image_mobile-applications_xoomer_471_0.webp
    Development of a mobile application for XOOMER
    624
  • image_mobile-applications_rhl_428_0.webp
    Development of a mobile application for RHL
    1052
  • image_mobile-applications_zippy_411_0.webp
    Development of a mobile application for ZIPPY
    947
  • image_mobile-applications_affhome_429_0.webp
    Development of a mobile application for Affhome
    862
  • image_mobile-applications_flavors_409_0.webp
    Development of a mobile application for the FLAVORS company
    445

Setting Up AppCenter for Mobile App CI/CD

Microsoft AppCenter is not just a test build distribution platform. It's a full CI/CD for mobile apps: build from Git trigger, testing on real devices via Device Farm, publishing to TestFlight and Google Play, crash analytics. Everything in one service without infrastructure setup.

Project Structure in AppCenter

For each app (iOS and Android), a separate "app" is created in AppCenter. The organization is called "org" — all apps are grouped under it. Typical structure:

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

Setting Up Build via YAML

AppCenter supports appcenter-post-clone.sh, appcenter-pre-build.sh, appcenter-post-build.sh — scripts executed at corresponding stages. A more flexible approach — 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 Scripts

If YAML configuration is unavailable, appcenter-post-build.sh is called after successful build:

#!/usr/bin/env bash

# Send to 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 notification
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 built-in environment variables.

Environment Variables and Secrets

Build Configuration → Environment Variables. Sensitive values marked as "Secret" — encrypted and hidden in logs. Standard set:

  • P12_PASSWORD — certificate password
  • KEYSTORE_PASSWORD — Android keystore
  • FIREBASE_APP_ID — for Crashlytics/App Distribution
  • SLACK_WEBHOOK_URL — notifications

Testing on Real Devices

AppCenter Device Farm allows running UI tests (XCUITest, Espresso) on real devices:

# Upload and run 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 are created in AppCenter UI — you can select specific models and iOS/Android versions.

AppCenter CI Limitations

AppCenter Build doesn't support complex matrix builds, custom Docker images for Android, Gradle caching at organization level. For advanced scenarios, AppCenter CI is combined with external CI (GitHub Actions for main build, AppCenter — only for distribution and testing).

Process

Create apps in AppCenter → connect repository → configure Build → add signing (for iOS) → write post-build scripts → configure Distribution → test run → write documentation.

Timeline: 2–3 days. Cost is calculated individually.