Гайды

Как безопасно публиковать iOS-приложения: Codemagic CI/CD и App Store Connect без Xcode

📅 23 сентября 2026 ⏱ 12 мин чтения ✍️ 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