Налаштування CodeMagic для CI/CD мобільного додатку під ключ

Збірка мобільного додатку вручну — постійний головний біль: то provisioning profile прострочений, то версія Xcode не та, то Android SDK не встановлений. Ми стикалися з цим на кожному другому проєкті за кілька років мобільної розробки. CodeMagic вирішує ці проблеми з коробки: надає попередньо налашто

Розробка та підтримка будь-яких видів мобільних додатків:

Інформаційні та розважальні мобільні програми
Новинки, ігри, довідники, онлайн-каталоги, погодні, фітнес та здоров'я, туристичні, освітні, соціальні мережі та месенджери, квіз, блоги та подкасти, форуми, агрегатори
Мобільні програми електронної комерції
Інтернет-магазини, B2B-додатки, маркетплейси, онлайн-обмінники, кешбек-сервіси, біржі, дропшиппінг-платформи, програми лояльності, доставка їжі та товарів, платіжні системи
Мобільні програми для управління бізнес-процесами
CRM-системи, ERP-системи, управління проектами, інструменти для команди продажів, облік фінансів, управління виробництвом, логістика та доставка, управління персоналом, системи моніторингу даних
Мобільні програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, платформи надання електронних послуг, платформи кешбеку, відеохостинги, тематичні портали, платформи онлайн-бронювання та запису, платформи онлайн-торгівлі

Це лише деякі з типів мобільних додатків, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1734 послуг
Налаштування CodeMagic для 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

Збірка мобільного додатку вручну — постійний головний біль: то provisioning profile прострочений, то версія Xcode не та, то Android SDK не встановлений. Ми стикалися з цим на кожному другому проєкті за кілька років мобільної розробки. CodeMagic вирішує ці проблеми з коробки: надає попередньо налаштовані macOS та Linux агенти з усім необхідним інструментарієм. Ми налаштували CI/CD для 40+ проєктів на iOS, Android та Flutter — і знаємо, як зробити це швидко та надійно.

Налаштовуємо CodeMagic під ключ: від підключення репозиторію до публікації в App Store та Google Play. Оцінимо ваш проєкт за один день. У результаті ви отримуєте автоматичну збірку при кожному пуші, прогін тестів та доставку білдів тестувальникам і в стори. Економія часу на ручних операціях сягає 80%.

Як вибрати між GUI та YAML?

CodeMagic підтримує два способи конфігурації: Workflow Editor (GUI) та codemagic.yaml. Для серйозних проєктів вибирайте YAML — він версіонується в Git, зміни проходять рев'ю через Pull Request. GUI зручний для швидкого налаштування прототипу, але в продакшені YAML дає контроль та повторюваність. Ми рекомендуємо YAML для проєктів з тривалістю розробки більше місяця.

# 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 — найвужче місце?

Code signing для iOS — головне джерело помилок в CI/CD. Неправильний provisioning profile, прострочений сертифікат, неспівпадіння bundle identifier — і збірка падає. CodeMagic пропонує два шляхи.

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. Надійніше, контроль повний.

Порівняємо обидва підходи:

Характеристика Automatic code signing Manual code signing
Час налаштування 10 хвилин 30 хвилин
Контроль Низький Повний
Залежність від прав CI Так Ні
Термін дії сертифіката Створюється заново щоразу Використовується ваш постійний сертифікат
Рекомендація Для прототипів та внутрішніх тестів Для продакшену
Порада: зберігайте сертифікати в зашифрованому виглядіДля manual code signing завжди використовуйте Encrypted Variables. Ніколи не зберігайте .p12 в репозиторії — навіть приватному. Це стандарт безпеки, який ми перевіряємо на аудиті.

Як налаштувати CI/CD в CodeMagic за 5 кроків?

  1. Підключіть репозиторій. Створіть проєкт в CodeMagic та прив'яжіть GitHub, GitLab або Bitbucket. Вкажіть гілки для тригерів.
  2. Створіть codemagic.yaml. Визначте середовища, скрипти збірки, артефакти та публікацію. Використовуйте шаблон з документації CodeMagic YAML reference.
  3. Налаштуйте code signing. Виберіть automatic або manual. Для manual — завантажте сертифікати в змінні.
  4. Налаштуйте кешування. Вкажіть шляхи до кешів у секції cache — це прискорить збірку в 3-5 разів.
  5. Налаштуйте публікацію. Додайте publishing в apple_store_connect та google_play. Призначте треки: internal test, beta, production. Кожен крок займає в середньому 20-40 хвилин, з урахуванням налагодження.

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 хвилин додатково на кожен білд. З кешуванням — до 20 секунд. Економія до 10 годин на місяць при щоденних збірках. На проєктах з мікросервісною архітектурою кешування скорочує загальний час CI/CD на 40%.

Порівняння збірки iOS, Android та Flutter в CodeMagic

Платформа Середній час збірки (з кешем) Типові артефакти Частота падінь
iOS 15-25 хв .ipa, dSYM 5% через signing
Android 10-20 хв .aab, .apk, mapping 2% через ProGuard
Flutter 20-35 хв (обидві платформи) .ipa + .aab 3% через version pin

Що входить в нашу роботу

Ми не просто налаштовуємо CodeMagic — ми будуємо надійний CI/CD пайплайн під ключ:

  • Аудит поточних процесів збірки та доставки
  • Написання codemagic.yaml з урахуванням вашого стеку
  • Налаштування code signing (automatic або manual)
  • Інтеграція з App Store Connect та Google Play Console
  • Налаштування кешування та тригерів
  • Документація процесу та схеми пайплайну
  • Навчання команди (2 години вебінару)
  • Місяць підтримки після впровадження

Термін: від 2 днів для однієї платформи до 5 днів для комплексного рішення під iOS + Android + Flutter. Вартість розраховується індивідуально. У нас за плечима 5+ років досвіду та 40+ успішних впроваджень — гарантуємо стабільну роботу пайплайну.

Пишіть — оцінимо ваш проєкт протягом одного робочого дня. Отримайте консультацію та план впровадження.