Гайди

Як безпечно публікувати iOS-застосунки: Codemagic CI/CD та App Store Connect без Xcode

📅 23 вересня 2026 ⏱ 11 хв читання ✍️ SmartShop

Покроковий практичний гайд із налаштування CI/CD для iOS-застосунку через Codemagic. Розбираємо підготовку Xcode-проєкту, створення SSH-ключа, налаштування codemagic.yaml, випуск GitHub token і App Store Connect API key, підключення репозиторію та Apple Developer акаунта до Codemagic, а також запуск збірки з автоматичним завантаженням білда в App Store Connect.

Як безпечно публікувати iOS-застосунки: Codemagic CI/CD та App Store Connect без Xcode

Codemagic — це зручний спосіб збирати та надсилати iOS-застосунки в App Store Connect через CI/CD без необхідності щоразу виконувати весь процес вручну через Xcode на основному робочому пристрої. Такий підхід особливо корисний, якщо ви хочете автоматизувати публікацію, спростити повторні збірки та мінімізувати ручні дії.

Ще одна перевага такого сценарію — більш акуратна організація роботи з Apple Developer акаунтом. Якщо завдання полягає в тому, щоб максимально розділяти робоче середовище та не створювати зайвих зв’язків між акаунтами, авторизовувати Apple Developer акаунт безпосередньо в Xcode вкрай небажано. Замість цього збірку та відправлення білда можна винести в окремий CI/CD-процес через Codemagic.

У цій статті ми покажемо весь шлях повністю: від підготовки Xcode-проєкту до появи нового білда в App Store Connect. Як приклад використовуємо звичайний iOS-проєкт, GitHub-репозиторій і Personal-акаунт Codemagic. Для такого сценарію безкоштовного тарифу Codemagic зазвичай достатньо.

Якщо вам зручніше не читати, а дивитися процес покроково на екрані, відкрийте наше відео на YouTube. Там увесь сценарій показаний на реальному прикладі та в тій самій логіці, що й у статті: https://www.youtube.com/watch?v=lbAM75jt6Sk.

Що знадобиться перед початком

Перед налаштуванням Codemagic підготуйте базові речі:

  • готовий Xcode-проєкт, який уже запускається без помилок;
  • GitHub-репозиторій, куди можна запушити проєкт;
  • застосунок, заздалегідь створений в App Store Connect;
  • Apple Developer акаунт із доступом до створення App Store Connect API key;
  • email, на який ви зареєструєте акаунт Codemagic.

Важливо, щоб Bundle Identifier у проєкті збігався з Bundle ID застосунку в App Store Connect. Без цього автоматична публікація не працюватиме коректно.

Підготовка Xcode-проєкту

Починати потрібно із самого проєкту. Перед завантаженням переконайтеся, що застосунок повністю готовий, нормально запускається на симуляторі або реальному пристрої та не містить критичних помилок, які проявляться вже після початку збірки в CI/CD.

Також до старту перевірте три ключові параметри: Bundle Identifier, Version і Build. Bundle Identifier має відповідати потрібному застосунку в App Store Connect, а значення Version і Build мають бути вищими, ніж у останнього білда, який уже був завантажений в акаунт.

Підготовка Xcode-проєкту — крок 1

Після цього потрібно підготувати SSH-ключ, який знадобиться для подальшої конфігурації. Відкрийте Terminal і згенеруйте новий RSA-ключ командою:

ssh-keygen -t rsa -b 2048 -m PEM -f ~/Desktop/ios_distribution_private_key -q -N ""
Підготовка Xcode-проєкту — крок 2

Після виконання команди на робочому столі з’явиться файл ios_distribution_private_key. Саме його вміст знадобиться трохи пізніше для вставки в конфігурацію Codemagic. Сам файл краще одразу зберегти та не видаляти до завершення налаштування.

Підготовка Xcode-проєкту — крок 3

Повертаємося до проєкту. У корені проєкту створіть файл codemagic.yaml. Це основний конфігураційний файл, за яким Codemagic розумітиме, як саме збирати застосунок, як налаштовувати code signing і куди надсилати готовий білд.

Підготовка Xcode-проєкту — крок 4

Далі вставте в codemagic.yaml заздалегідь підготовлену конфігурацію. Усередині неї окремо зверніть увагу на блок CERTIFICATE_PRIVATE_KEY. Саме сюди потрібно вставити вміст створеного RSA-ключа.

Підготовка Xcode-проєкту — крок 5

Відкрийте файл ios_distribution_private_key, повністю скопіюйте його вміст — від BEGIN RSA PRIVATE KEY до END RSA PRIVATE KEY — і вставте його в блок CERTIFICATE_PRIVATE_KEY усередині codemagic.yaml. Після цього збережіть файл.

Підготовка Xcode-проєкту — крок 6

Коли конфігурація готова, запуште весь проєкт разом із codemagic.yaml у GitHub. Після цього можна переходити до створення токена доступу до репозиторію.

Створення GitHub Personal Access Token

Щоб Codemagic отримав доступ до приватного GitHub-репозиторію, знадобиться Personal Access Token. Створити його краще заздалегідь, до реєстрації та підключення репозиторію в Codemagic.

Для початку відкрийте GitHub, натисніть на іконку профілю та перейдіть у Settings.

Створення GitHub Personal Access Token — крок 1

Далі відкрийте розділ Credentials, а потім перейдіть у Personal access tokens (classic).

Створення GitHub Personal Access Token — крок 2

Або, якщо ви вже перебуваєте всередині розділу токенів, натисніть Generate new token і виберіть варіант Generate new token (classic).

Створення GitHub Personal Access Token — крок 3

У налаштуваннях нового токена в полі Note можна вказати, наприклад, codemagic. Як строк дії в нашому прикладі використовується варіант без обмеження за часом. У правах обов’язково ввімкніть repo, а також додатково активуйте workflow.

Створення GitHub Personal Access Token — крок 4

Після створення GitHub покаже токен лише один раз. Тому обов’язково одразу збережіть його в безпечному місці. Цей токен знадобиться вже на наступному етапі, коли ми підключатимемо репозиторій до Codemagic.

Створення GitHub Personal Access Token — крок 5

Видалення User Data Xcode перед публікацією

Ми вже згадували, що в робочий Xcode не варто авторизовувати Apple Developer акаунт, а під час розробки не потрібно вибирати Team для застосунку. Але перед тим як переходити до збірки та публікації, варто зробити ще один крок: прибрати локальні користувацькі дані Xcode з Git і додати їх у виключення.

Навіть якщо Apple Developer акаунт ніколи не використовувався всередині Xcode, у проєкті можуть залишатися каталоги xcuserdata з локальними даними користувача. Щоб вони не потрапляли в GitHub, їх потрібно прибрати з відстежуваних файлів і одразу додати відповідні шляхи в .gitignore. Тоді повторювати цю операцію перед кожною наступною збіркою не доведеться.

Для початку відкрийте корінь проєкту через Finder. Натисніть правою кнопкою на файл проєкту з розширенням .xcodeproj і виберіть New Terminal at Folder.

Видалення User Data Xcode перед публікацією — крок 1

У відкритому Terminal приберіть користувацькі каталоги Xcode з Git-індексу:

git rm -r --cached xcuserdata
git rm -r --cached project.xcworkspace/xcuserdata
Видалення User Data Xcode перед публікацією — крок 2

Після цього поверніться на рівень кореня проєкту. Якщо файлу .gitignore ще немає, створіть його через Terminal:

cd ..
nano .gitignore
Видалення User Data Xcode перед публікацією — крок 3

У .gitignore додайте такі рядки:

*.xcodeproj/xcuserdata/
*.xcodeproj/project.xcworkspace/xcuserdata/

Якщо .gitignore уже існує, створювати новий файл не потрібно — просто додайте в нього ці виключення. Під час роботи через nano збережіть зміни комбінацією Control + X, потім натисніть Y і Enter.

Видалення User Data Xcode перед публікацією — крок 4

Тепер зафіксуйте зміни в Git і відправте їх у репозиторій:

git add .
git commit -m "remove user data"
git push
Видалення User Data Xcode перед публікацією — крок 5

Після цього xcuserdata і дані з project.xcworkspace/xcuserdata не повинні потрапляти в наступні коміти. Проєкт можна далі використовувати для налаштування Codemagic і подальшої збірки через CI/CD.

Створення App Store Connect API key

Тепер переходимо до Apple-частини налаштування. На цьому етапі застосунок уже має бути створений в App Store Connect, а його Bundle ID має збігатися з тим, який використовується в Xcode-проєкті.

Відкрийте App Store Connect і перейдіть у Users and Access. Потім відкрийте вкладку Integrations, а в лівому меню виберіть App Store Connect API.

Створення App Store Connect API key — крок 1

Якщо активного ключа для цього завдання ще немає, натисніть кнопку з плюсом і створіть новий API key.

Створення App Store Connect API key — крок 2

Якщо це перший API key в акаунті, Apple може додатково запросити підтвердження доступу до API. Це нормальна поведінка. У вікні створення ключа вкажіть назву — наприклад, codemagic — і виберіть відповідний рівень доступу. Для типового сценарію завантаження білда зазвичай використовується доступ, достатній для роботи із застосунком і збіркою.

Створення App Store Connect API key — крок 3

Після створення ключа збережіть три речі:

  • Issuer ID;
  • Key ID;
  • завантажений .p8 файл.
Створення App Store Connect API key — крок 4

Тут є важливий момент: .p8 файл можна завантажити лише один раз. Якщо ви його не збережете, потім доведеться випускати новий ключ. Тому краще одразу покласти його в окрему захищену папку.

Реєстрація в Codemagic і підключення GitHub-репозиторію

Коли GitHub token і App Store Connect API key готові, можна переходити до Codemagic.

Відкрийте сайт Codemagic і почніть реєстрацію, натиснувши Sign up.

Реєстрація в Codemagic і підключення GitHub-репозиторію — крок 1

Введіть email, підтвердьте реєстрацію та введіть код, який прийде на пошту.

Реєстрація в Codemagic і підключення GitHub-репозиторію — крок 2

Після підтвердження Codemagic запропонує вибрати формат використання сервісу. Для нашого прикладу підійде Individual.

Реєстрація в Codemagic і підключення GitHub-репозиторію — крок 3

Далі запускається початкове налаштування. На етапі Connect your code виберіть варіант ручного підключення репозиторію через Add URL manually.

Реєстрація в Codemagic і підключення GitHub-репозиторію — крок 4

Після цього вкажіть URL GitHub-репозиторію, нижче введіть username GitHub-акаунта та вставте збережений Personal Access Token. Якщо репозиторій приватний, чекбокс Public repository позначати не потрібно. Потім підтвердьте вибір репозиторію.

Реєстрація в Codemagic і підключення GitHub-репозиторію — крок 5

Іноді Codemagic не визначає тип проєкту автоматично. У такому разі натисніть Set type manually.

Реєстрація в Codemagic і підключення GitHub-репозиторію — крок 6

Далі вручну виберіть тип проєкту iOS і завершіть створення застосунку.

Реєстрація в Codemagic і підключення GitHub-репозиторію — крок 7

Після завершення початкового онбордингу застосунок з’явиться у списку застосунків Codemagic. За потреби відкрийте його через Applications і завершіть решту кроків налаштування.

Реєстрація в Codemagic і підключення GitHub-репозиторію — крок 8

Коли все зроблено правильно, Codemagic підтягне репозиторій і побачить файл codemagic.yaml. Зазвичай після цього всередині проєкту вже відображатиметься сама конфігурація, а підключення репозиторію завершиться без помилок.

Реєстрація в Codemagic і підключення GitHub-репозиторію — крок 9

Підключення Apple Developer акаунта до Codemagic

Наступний етап — надати Codemagic доступ до Apple Developer акаунта через App Store Connect API key.

У Codemagic відкрийте Settings, розгорніть блок Integrations, знайдіть рядок Developer Portal і натисніть Connect.

Підключення Apple Developer акаунта до Codemagic — крок 1

У формі підключення вкажіть назву ключа — наприклад, codemagic. Потім вставте збережений Issuer ID, нижче додайте Key ID, а в полі API key завантажте завантажений .p8 файл.

Підключення Apple Developer акаунта до Codemagic — крок 2

Після збереження перевірте, що ключ з’явився у списку підключених і визначається як активний. Це означає, що інтеграція з Apple Developer Portal підключена коректно.

Підключення Apple Developer акаунта до Codemagic — крок 3

На цьому етапі Codemagic уже має і доступ до GitHub-репозиторію, і підключення до Apple Developer акаунта. Тепер можна переходити безпосередньо до збірки.

Запуск збірки через Codemagic

Відкрийте потрібний застосунок у Codemagic. Якщо репозиторій і конфігурація вже успішно підтягнулися, усередині проєкту буде доступна кнопка Start your first build або Start new build.

Запуск збірки через Codemagic — крок 1

Натисніть кнопку запуску та перевірте параметри. Зазвичай тут потрібно вибрати потрібну гілку — наприклад, main — і workflow з файлу codemagic.yaml. У нашому випадку workflow називається Build.

Запуск збірки через Codemagic — крок 2

Після підтвердження збірка почнеться автоматично. Спочатку Codemagic підготує build machine, потім завантажить вихідний код із GitHub, налаштує середовище, отримає signing files, застосує code signing і збере готовий IPA-файл.

Запуск збірки через Codemagic — крок 3

Коли workflow завершиться без помилок, поруч із застосунком з’явиться зелений індикатор успішної збірки, а в логах буде видно, що всі етапи відпрацювали коректно.

Запуск збірки через Codemagic — крок 4

Саме на цьому етапі Codemagic автоматично виконує всю основну частину процесу: клонує проєкт, використовує підключений Apple Developer акаунт, отримує необхідні signing files, збирає IPA та відправляє білд в App Store Connect.

Перевірка білда в App Store Connect

Після успішної збірки відкрийте App Store Connect і перевірте потрібний застосунок. Через деякий час новий білд з’явиться у списку збірок і стане доступним для подальших дій — наприклад, для TestFlight або наступного релізу в App Store.

Перевірка білда в App Store Connect — крок 1

Якщо поруч із новим білдом ви бачите статус на кшталт Missing Compliance, це не означає, що Codemagic спрацював неправильно. Зазвичай це означає, що Apple просить окремо заповнити інформацію щодо export compliance. У такому разі відкрийте Manage і пройдіть стандартну форму. Після цього білд можна буде використовувати далі.

Що робити під час наступних збірок

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

Для наступного завантаження зазвичай достатньо:

  • оновити Version або Build у Xcode-проєкті;
  • за потреби внести зміни в код;
  • запушити оновлений проєкт у GitHub;
  • знову відкрити Codemagic і запустити нову збірку.

Якщо зв’язка GitHub + Codemagic + App Store Connect API key уже працює, всі наступні білди відправляються в App Store Connect значно швидше та зручніше, ніж при ручній збірці щоразу.

Підсумок

Отже, ми повністю розібрали процес завантаження iOS-застосунку в App Store Connect через Codemagic.

Спочатку підготували Xcode-проєкт: перевірили Bundle Identifier, Version і Build, згенерували RSA-ключ і додали його в codemagic.yaml. Потім створили GitHub Personal Access Token і випустили App Store Connect API key. Після цього зареєструвалися в Codemagic, підключили репозиторій, додали інтеграцію з Apple Developer акаунтом і запустили автоматичну збірку.

На перший погляд кроків справді багато, але більша частина цього налаштування виконується лише один раз. Після цього Codemagic перетворюється на зручний інструмент, через який можна швидко збирати та завантажувати нові версії iOS-застосунку без постійної ручної роботи в Xcode.

Якщо вам зручніше дивитися, а не читати, поверніться до нашого відеорозбору: https://www.youtube.com/watch?v=lbAM75jt6Sk. Там увесь процес показаний на екрані, включно з інтерфейсами App Store Connect, GitHub і Codemagic.

Якщо у вас залишилися питання щодо Codemagic, завантаження застосунків, App Store Connect або роботи з Apple Developer акаунтами, їх завжди краще розбирати на конкретному кейсі: від структури проєкту та codemagic.yaml до code signing і статусів білда вже після завантаження.

Потрібен чистий Apple Developer акаунт?

Готові акаунти з гарантією 7 днів. 10+ GEO на вибір. Оплата лише після перевірки.

Замовити в Telegram