Без действующего сертификата разработчика Xcode откажется подписывать приложение, а при попытке сборки вы увидите ошибку вроде «No signing certificate found» или «Failed to create provisioning profile». Причина почти всегда одна: в связке ключей нет валидной пары «сертификат + приватный ключ», либо сертификат истёк, либо он был создан на другом Mac и перенесён без закрытого ключа. Разберём, как создать сертификат разработчика Apple с нуля и что проверить, если подпись не проходит.
Процедура состоит из трёх этапов: генерация запроса на сертификат (CSR) в Keychain Access, создание самого сертификата на портале Apple Developer и установка его в систему. Каждый этап имеет свои подводные камни, поэтому пройдём их последовательно.
Что такое сертификат разработчика и зачем он нужен
Сертификат разработчика — это цифровой документ, который связывает вашу учётную запись Apple ID с парой криптографических ключей. Apple использует его, чтобы подтвердить: приложение подписано именно вами, а код не изменялся после подписи. Без этого механизма невозможна ни установка сборки на реальное устройство, ни публикация в App Store.
Важно понимать разницу между ключами и сертификатом. Приватный ключ создаётся на вашем Mac в момент генерации CSR-запроса и никуда не отправляется. Сертификат выдаёт Apple на основе публичного ключа из запроса. Подпись работает только тогда, когда обе части находятся в одной связке ключей.
Типы сертификатов: какой выбрать
На портале разработчика доступно несколько типов сертификатов, и выбор зависит от задачи. Ошибка на этом шаге — частая причина того, что сертификат создаётся, но не подходит для нужной цели.
- 🍏 Apple Development — для разработки и отладки приложений на своих устройствах.
- 📦 Apple Distribution — для подписи сборок, отправляемых в App Store или распространяемых через Ad Hoc.
- 💻 Mac Development / Mac App Distribution — аналогичные типы для приложений под macOS.
- 🔔 Apple Push Services — отдельный сертификат для работы push-уведомлений, если не используется токен-авторизация.
Если вы только начинаете и хотите запускать приложение на своём iPhone, достаточно типа Apple Development. Для публикации потребуется дополнительно создать Apple Distribution.
| Тип сертификата | Назначение | Когда нужен |
|---|---|---|
| Apple Development | Подпись при разработке | Запуск на своих устройствах, отладка |
| Apple Distribution | Подпись релизных сборок | App Store, TestFlight, Ad Hoc |
| Mac Development | Разработка под macOS | Отладка Mac-приложений |
| Apple Push Services | Push-уведомления | Если не используется APNs-ключ |
Подготовка: учётная запись и программа разработчика
Прежде чем создавать сертификат, убедитесь, что у вас есть доступ к порталу разработчика. Для бесплатной учётной записи Apple ID возможности ограничены: подпись для тестирования на своём устройстве работает через Personal Team прямо из Xcode, но полноценные сертификаты создаются только в рамках платной программы Apple Developer Program.
Проверьте статус членства на портале developer.apple.com в разделе Account → Membership. Если оплата программы просрочена, ранее выпущенные сертификаты могут перестать приниматься для новых подписей, а профили обеспечения (provisioning profiles) станут недействительными.
⚠️ Внимание: если вы работаете в команде, права на создание сертификатов зависят от роли. Участники с ролью Member могут столкнуться с ограничениями — выпуск Distribution-сертификатов обычно доступен только ролям Account Holder и Admin. Проверьте свою роль в разделе
Peopleна портале или в App Store Connect.
Шаг 1. Генерация CSR-запроса в Keychain Access
CSR (Certificate Signing Request) — это файл запроса, в котором содержится ваш публичный ключ и данные владельца. Создаётся он через стандартную утилиту macOS Связка ключей (Keychain Access).
Откройте Keychain Access и в строке меню выберите Связка ключей → Ассистент сертификации → Запросить сертификат у центра сертификации. В появившемся окне укажите адрес электронной почты (логично использовать почту вашего Apple ID), имя и отметьте вариант Сохранено на диск. Поле «адрес центра сертификации» можно оставить пустым.
После сохранения на диске появится файл с расширением .certSigningRequest, а в связке ключей — новая пара ключей. Не удаляйте и не переустанавливайте систему до завершения всей процедуры: приватный ключ из этой пары понадобится для работы сертификата.
☑️ Проверка перед созданием CSR
Шаг 2. Создание сертификата на портале Apple Developer
Теперь нужно передать запрос в Apple. Войдите на портал developer.apple.com под учётной записью с активной программой разработчика и перейдите в раздел Certificates, Identifiers & Profiles, затем во вкладку Certificates.
Нажмите кнопку добавления (значок «+»), выберите нужный тип — например, Apple Development — и на следующем экране загрузите созданный ранее CSR-файл. Портал обработает запрос и предложит скачать готовый сертификат в формате .cer.
Обратите внимание: Apple ограничивает количество одновременно активных сертификатов некоторых типов. Если кнопка создания недоступна, возможно, лимит исчерпан — тогда потребуется отозвать один из старых сертификатов, но сначала убедитесь, что он не используется для действующих сборок.
Что делать, если кнопка создания сертификата неактивна
Проверьте три вещи: активна ли ваша подписка Apple Developer Program, достаточно ли прав у вашей роли в команде и не превышен ли лимит активных сертификатов выбранного типа. Лимит виден прямо в списке Certificates — отозвать неиспользуемый сертификат можно кнопкой Revoke, но делайте это только убедившись, что он не привязан к рабочим provisioning-профилям.
Шаг 3. Установка сертификата и проверка в Xcode
Дважды щёлкните по скачанному файлу .cer — он автоматически добавится в связку ключей. Откройте Keychain Access, выберите связку Вход и категорию Мои сертификаты: сертификат должен отображаться с раскрывающимся треугольником, под которым виден приватный ключ. Если ключа нет — сертификат установлен на «чужой» Mac, и подписывать сборки он не сможет.
В Xcode откройте Settings → Accounts, выберите свой Apple ID и нажмите Manage Certificates — здесь отображаются все сертификаты, доступные среде разработки. После этого в настройках проекта на вкладке Signing & Capabilities включите автоматическое управление подписью или выберите соответствующий профиль вручную.
Типичные ошибки и их решение
Даже при точном следовании инструкции подпись иногда не работает. Вот с чем сталкиваются чаще всего:
- 🔑 Missing private key — сертификат есть, но приватного ключа в связке нет. Решение: экспортировать связку «сертификат + ключ» в
.p12с Mac, где создавался CSR, либо отозвать сертификат и создать новый локально. - ⏳ Certificate expired — срок действия сертификата истёк. Создайте новый по той же процедуре; старый можно удалить.
- 🚫 Revoked certificate — сертификат отозван на портале вами или администратором команды. Потребуется выпуск нового.
- 👥 Конфликт ролей — недостаточно прав для создания Distribution-сертификата. Запросите нужную роль у владельца учётной записи.
⚠️ Внимание: отзыв Distribution-сертификата, который используется для корпоративного (in-house) распространения, может остановить работу уже установленных приложений у пользователей. Перед отзывом проверьте, к каким provisioning-профилям привязан сертификат, и при необходимости проконсультируйтесь с официальной документацией Apple для вашего типа учётной записи.
Если Xcode продолжает сообщать об ошибке подписи после всех действий, попробуйте безопасную диагностику: удалите устаревшие сертификаты из связки ключей, перезапустите Xcode и повторно синхронизируйте учётную запись в Settings → Accounts. Эти шаги обратимы и не затрагивают данные проекта.
Срок действия и обновление сертификата
Сертификаты разработчика имеют ограниченный срок действия. Точный срок зависит от типа сертификата и политики Apple на момент выпуска — актуальное значение указано в свойствах сертификата в Keychain Access (двойной щелчок по сертификату открывает детали) и на портале разработчика.
Обновление — это фактически выпуск нового сертификата по той же процедуре: CSR можно использовать тот же, если приватный ключ сохранился в связке. После выпуска нового сертификата проверьте provisioning-профили: часть из них может потребовать пересоздания с привязкой к новому сертификату.
⚠️ Внимание: не откладывайте обновление на последний день. Если сертификат истечёт в момент подготовки релизной сборки, отправка в App Store остановится до выпуска нового сертификата и обновления профилей — а это дополнительное время на ревизию окружения.
Часто задаваемые вопросы
Можно ли создать сертификат без платной программы Apple Developer Program?
Полноценные сертификаты на портале создаются только при активной платной подписке. Однако для личного тестирования Xcode умеет автоматически создавать сертификат разработчика через бесплатную учётную запись Apple ID (Personal Team) — с ограничениями по сроку действия профилей и количеству устройств.
Что делать, если приватный ключ утерян вместе со старым Mac?
Восстановить ключ невозможно — он существовал только на том компьютере. Отзовите старый сертификат на портале разработчика и создайте новый: сгенерируйте свежий CSR на текущем Mac и пройдите процедуру заново. Опубликованные в App Store приложения от этого не пострадают, но корпоративные сборки могут потребовать переподписи.
Нужно ли создавать отдельный сертификат для каждого приложения?
Нет. Один сертификат разработчика используется для подписи всех ваших приложений. Индивидуальными для каждого приложения являются App ID и provisioning-профили, а не сам сертификат.
Чем сертификат отличается от provisioning profile?
Сертификат подтверждает личность разработчика. Provisioning profile связывает сертификат с конкретным App ID и списком устройств (для разработки) и именно он устанавливается на устройство вместе с приложением. Для запуска сборки нужны оба элемента.
Можно ли использовать один сертификат на нескольких компьютерах?
Да. Для этого на Mac, где создавался CSR, экспортируйте сертификат вместе с приватным ключом через Keychain Access в файл .p12 (задайте надёжный пароль) и импортируйте его на другом компьютере. Передавать файл следует только по защищённому каналу.