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

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

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

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

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

Услуги, которые мы предлагаем
Показано 1 из 1Все 1735 услуг
Настройка CodeMagic для 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

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

CodeMagic — CI/CD сервис, созданный специально для мобильной разработки. В отличие от GitHub Actions или GitLab CI, где нужно самому настраивать macOS-агенты, keychain, Xcode, Android SDK, CodeMagic предоставляет преднастроенные macOS/Linux машины с уже установленными инструментами. Для Flutter-проектов — особенно удобен: официально поддерживается Flet командой.

Два формата конфигурации

CodeMagic поддерживает GUI-конфигурацию (Workflow Editor) и codemagic.yaml. Для серьёзных проектов — только YAML: он версионируется в Git, изменения ревьюятся через PR.

# codemagic.yaml
workflows:
  android-release:
    name: Android Release
    max_build_duration: 60
    environment:
      groups:
        - keystore_credentials
        - google_play_credentials
      vars:
        PACKAGE_NAME: "com.myapp.android"
      android_signing:
        - keystore_reference
    triggering:
      events:
        - push
      branch_patterns:
        - pattern: 'main'
    scripts:
      - name: Set build number
        script: |
          BUILD_NUMBER=$(($(google-play get-latest-build-number \
            --package-name "$PACKAGE_NAME" \
            --tracks=internal) + 1))
          cd android && ./gradlew versionCode -PversionCode=$BUILD_NUMBER
      - name: Build Android
        script: |
          cd android
          ./gradlew bundleRelease
    artifacts:
      - android/app/build/outputs/bundle/**/*.aab
    publishing:
      google_play:
        credentials: $GCLOUD_SERVICE_ACCOUNT_CREDENTIALS
        track: internal
        submit_as_draft: false

iOS-конфигурация

  ios-release:
    name: iOS Release
    max_build_duration: 90
    environment:
      groups:
        - appstore_credentials
      ios_signing:
        distribution_type: app_store
        bundle_identifier: com.myapp.ios
    scripts:
      - name: Set build number
        script: |
          BUILD_NUMBER=$(app-store-connect get-latest-build-number \
            --app-id $APP_STORE_APP_ID)
          agvtool new-version -all $((BUILD_NUMBER + 1))
      - name: Build iOS
        script: |
          xcode-project build-ipa \
            --workspace "MyApp.xcworkspace" \
            --scheme "MyApp"
    artifacts:
      - build/ios/ipa/*.ipa
    publishing:
      app_store_connect:
        api_key: $APP_STORE_CONNECT_PRIVATE_KEY
        key_id: $APP_STORE_CONNECT_KEY_IDENTIFIER
        issuer_id: $APP_STORE_CONNECT_ISSUER_ID
        submit_to_testflight: true
        beta_groups:
          - Internal Testers

Code Signing в CodeMagic

CodeMagic предлагает два пути для iOS signing:

Automatic code signing — CodeMagic сам создаёт временный certificate и provisioning profile через App Store Connect API. Не требует Fastlane Match. Удобно, но зависит от прав CI-пользователя в App Store Connect.

Manual code signing — загружаешь .p12 и .mobileprovision в CodeMagic Encrypted Variables. Надёжнее, контроль полный.

Flutter в CodeMagic

  flutter-multiplatform:
    name: Flutter Release
    environment:
      flutter: stable
    scripts:
      - name: Get dependencies
        script: flutter pub get
      - name: Run tests
        script: flutter test --coverage
      - name: Build Android
        script: |
          flutter build appbundle \
            --release \
            --dart-define=ENV=production
      - name: Build iOS
        script: |
          flutter build ipa \
            --release \
            --export-options-plist=/Users/builder/export_options.plist

Кэширование зависимостей

cache:
  cache_paths:
    - $FLUTTER_ROOT/.pub-cache
    - $HOME/.gradle/caches
    - $HOME/Library/Caches/CocoaPods

Без кэширования pod install и flutter pub get занимают 3–5 минут дополнительно на каждый билд.

Процесс

Регистрация в CodeMagic → подключение репозитория → написание codemagic.yaml → настройка signing (automatic или manual) → добавление environment groups с секретами → настройка publishing → тест-запуск → документация.

Срок: 2–3 дня для конфигурации одной платформы, до 5 дней для iOS + Android + Flutter с публикацией в обоих стора. Стоимость рассчитывается индивидуально.