Как выгружать приложения на индивидуальный аккаунт разработчика

Если разработчика добавить в индивидуальный аккаунт, он не сможет выгружать приложения. С этой инструкцией вы сможете выгружать

Поможем в Telegram-чате для iOS разработчиков

Вы хотите добавить разработчика в аккаунт, чтобы он мог выгружать приложения. Если у вас аккаунт компании (юр. лицо), то всё работает из коробки.

Но если у вас индивидуальный аккаунт (физ. лицо), то сторонний разработчик сможет выгружать приложения только со специальным профайлом.

Передавать логин-пароль от вашего Apple ID небезопасно, не делайте так

Сертификаты можно сделать вручную или через API. В этой статье разберем ручной способ.

По шагам, что будем делать:

  1. Сначала запрос на подпись для сертификата
  2. Создадим сам сертификат
  3. Объединим этот сертификат с ключом
  4. Регистрируем приложение (возможно, оно у вас уже зарегано)
  5. Делаем профайл на основе сертификата — именно он нужен, чтобы выгружать приложения

Запрос сертификата

Делаем специальный запрос на сертификат — это файл с расширением .certSigningRequest.

Открываем Keychain Access и создаём файл CertificateSigningRequest.certSigningRequest:

 Запрос в центре сертификации
Запрос в центре сертификации

Вводим почту, имя и выбираем Saved to disk. В следующем окне просто сохраните файл:

 Сохраняем запрос на сертификат
Сохраняем запрос на сертификат

У вас появится файл, он ещё пригодится:

 Готовый файл .certSigningRequest
Готовый файл .certSigningRequest
Если у владельца акаунта нет macOS, то запрос-файл делает разработчик и отправляет владельцу аккаунта

Делаем сертификат

Сертификат подтверждает, что приложение именно ваше. Расширение у файла-сертификата — .cer.

Откройте в Developer Account вкладку сертификаты:

 Вкладка с сертификатами
Вкладка с сертификатами

Чтобы сделать новый сертификат, жмите плюс:

 Добавляем сертификат
Добавляем сертификат

Выбираем Apple Distribution и жмем Continue:

 Apple Distribution
Apple Distribution

На этой странице попросит файл-запрос на сертификат .certSigningRequest, который мы сделали выше. Выбирайте файл:

 Добавляем .certSigningRequest
Добавляем .certSigningRequest

Сертификат готов — скачайте его, он ещё пригодится:

 Скачиваем сертификат
Скачиваем сертификат

Объединяем сертификат и ключ

Дальше нужен файл с расширением .p12. Он хранит связку сертификат-ключ.

Кликните два раза по файлу distribution.cer, и он откроется Keychain Access.

Если ничего не происходит, просто найдите последний загруженный сертификат Apple Distribution по дате. Дата истечения будет через год
 Apple Distribution сертификат
Apple Distribution сертификат

Разверните выпадайку (слева от сертификата), выделите сертификат и приватный ключ. Дальше нажмите правую кнопку и выберите Export 2 items....

 Экспортируем сертификат с ключом
Экспортируем сертификат с ключом

Сохраняем файл:

 Имя для сертификата
Имя для сертификата

Ставим пароль сертификату, можно оставить пустым:

 Пароль для сертификата
Пароль для сертификата

Тут попросит пароль от вашего мака — введите и нажмите Always Allow:

 Вводим пароль от вашего мака
Вводим пароль от вашего мака

Получим файл Certificates.p12:

 Сертификат .p12
Сертификат .p12

Регистрируем приложение

Если у вас уже есть приложение, этот шаг пропускаем

App ID это уникальный идентификатор приложения. Он связывает приложения с сервисами Apple, такими как Push Notifications, iCloud, Game Center и др.

Идем в Developer Account во вкладку Identifiers и жмем плюс:

 Вкладка Identifiers
Вкладка Identifiers

Выбираем App IDs, далее App:

 App IDs и App
App IDs и App

Здесь в Description введите название приложения, а в Bundle ID бандл. Explicit — используется для подписи только одного приложения. Wildcard — используется для подписи нескольких приложений.

Подробнее про Explicit и Wildcard по ссылке
 Регистрация App ID
Регистрация App ID

Когда заполнили поля, жмём Register:

Если получили ошибку проверьте поле Bundle ID
 Регистрируем App ID
Регистрируем App ID

На странице Identifiers появится идентификатор нового приложения:

 Идентификатор приложения
Идентификатор приложения

Provisioning Profile

Provisioning Profile связывает всё вместе: Apple Developer Account, App ID, сертификаты и устройства.

Это файл с расширением .mobileprovision.

Идем во вкладку Profiles, жмем кнопку Generate a profile:

 Вкладка Profiles
Вкладка Profiles

Выбираем App Store Connect:

 App Store Connect
App Store Connect

В App ID выбираем нужный Bundle ID из списка:

 Выбираем App ID
Выбираем App ID

Выбираем недавно созданный сертификат (проверь дату, когда истекает):

 Добавляем сертификат
Добавляем сертификат

Заполните имя Provisioning Profile Name и нажмите Generate:

 Название для Provisioning Profile
Название для Provisioning Profile

Осталось скачать файл:

 Скачиваем Provisioning Profile
Скачиваем Provisioning Profile

Получаем файл с вашим именем и расширением .mobileprovision:

 Provision Profile
Provision Profile

Передаем файлы разработчику

Передаем разработчику файл .p12 и Provision Profile. Дальше разработчику нужно дважды щелкнуть на файл .p12 или импортировать в Keychain Access:

 Импортируем .p12
Импортируем .p12

Теперь разработчик идет в Xcode-проект — Project Settings и выбирает таргет. На вкладке Signing & Capabilities отключаем Automatically manage signing, выбираем Team ID и импортируем Provisioning Profile:

 Импортируем Provision Profile
Импортируем Provision Profile

Готово! Разработчик сможет выгружать приложения на индивидуальный аккаунт.

Инструкцию повторять только если меняется Profile. Для каждого приложения повторять не нужно
Поправить или дополнить статью через Pull Request