Без действующего сертификата разработчика Xcode отказывается подписывать приложение, а сборка останавливается с ошибкой вроде «No signing certificate found» или «Failed to create provisioning profile». Это первый барьер, с которым сталкивается каждый, кто хочет запустить своё приложение на реальном iPhone или опубликовать его в App Store. К счастью, процедура создания сертификата разработчика iOS стандартизирована и занимает от нескольких минут до пары дней — в зависимости от того, есть ли у вас уже оплаченный аккаунт Apple Developer.
В этой инструкции разберём весь путь: от регистрации в Apple Developer Program до выпуска сертификатов двух типов — Apple Development для отладки и Apple Distribution для публикации. Также разберём типичные ошибки подписи и способы их устранения.
Что такое сертификат разработчика iOS и зачем он нужен
Сертификат разработчика — это цифровой документ, который Apple выдаёт участнику программы разработчиков и который связывает вашу личность (или компанию) с парой криптографических ключей на вашем Mac. Каждое приложение для iOS должно быть подписано таким сертификатом: без подписи система просто не установит и не запустит сборку на устройстве.
Существует два основных типа сертификатов:
- 🛠️ Apple Development — для разработки и отладки: позволяет устанавливать приложение на зарегистрированные тестовые устройства через Xcode.
- 🚀 Apple Distribution — для распространения: подписывает сборки, отправляемые в App Store или распространяемые через TestFlight и Ad Hoc.
- 🔑 Оба сертификата привязаны к закрытому ключу на вашем Mac — потеря ключа делает сертификат бесполезным.
Отдельно стоит упомянуть provisioning profile — файл, который связывает сертификат, идентификатор приложения (App ID) и список устройств. Xcode умеет управлять профилями автоматически, но понимание этой связки помогает быстрее находить причину ошибок подписи.
Шаг 1. Регистрация в Apple Developer Program
Для выпуска сертификата нужен оплаченный аккаунт разработчика. Бесплатный Apple ID позволяет тестировать приложение только на своём устройстве с ограничениями, но полноценные сертификаты выдаются только участникам программы.
Порядок действий:
- 📱 Зарегистрируйте Apple ID, если его ещё нет, и включите двухфакторную аутентификацию — без неё вступление в программу невозможно.
- 💳 Перейдите на сайт Apple Developer и подайте заявку на вступление в Apple Developer Program; на момент написания статьи членство является платным, актуальную стоимость проверяйте на официальном сайте.
- 🏢 Для регистрации организации потребуется номер D-U-N-S — проверьте его наличие заранее, получение номера может занять время.
- ⏳ Дождитесь подтверждения: для физических лиц проверка обычно быстрее, для компаний Apple может запросить дополнительные документы.
⚠️ Внимание: данные в заявке (имя, название организации) должны совпадать с официальными документами. Несовпадение — частая причина отказа или задержки верификации аккаунта.
Шаг 2. Создание запроса на сертификат (CSR) в Keychain Access
Запрос на подпись сертификата (CSR — Certificate Signing Request) генерируется на вашем Mac через штатную утилиту Keychain Access (Связка ключей). Во время генерации создаётся пара ключей: закрытый остаётся в связке ключей, а открытый уходит в запросе в Apple.
Откройте Keychain Access и в строке меню выберите путь: Связка ключей → Ассистент сертификации → Запросить сертификат у бюро сертификации. В появившемся окне укажите email (лучше тот, что привязан к аккаунту разработчика), имя и выберите вариант «Сохранено на диск».
☑️ Проверка перед отправкой CSR
После сохранения вы получите файл с расширением .certSigningRequest. Одновременно в Связке ключей появятся открытый и закрытый ключи — не удаляйте их, иначе выпущенный сертификат окажется бесполезным.
Шаг 3. Выпуск сертификата в аккаунте разработчика
Имея CSR-файл, переходим к выпуску самого сертификата. Это делается в веб-интерфейсе портала разработчика.
- Авторизуйтесь на портале Apple Developer и откройте раздел
Certificates, Identifiers & Profiles. - Перейдите на вкладку Certificates и нажмите кнопку создания нового сертификата (значок «+»).
- Выберите тип: Apple Development для разработки или Apple Distribution для публикации.
- Загрузите ранее созданный файл CSR и подтвердите операцию.
- Скачайте готовый файл сертификата с расширением .cer и откройте его двойным кликом — он установится в Связку ключей.
После установки проверьте Связку ключей: сертификат должен отображаться вместе с закрытым ключом, разворачивающимся под ним. Если ключа нет — сертификат был выпущен с CSR с другого Mac, и подписывать им приложения на текущем компьютере не получится.
Как перенести сертификат на другой Mac
В Связке ключей найдите сертификат вместе с закрытым ключом, выделите оба, выберите «Экспортировать» и сохраните файл в формате .p12 с паролем. Перенесите файл на новый Mac и откройте его — ключи импортируются в связку. Альтернатива — создать новый CSR и выпустить отдельный сертификат для второго компьютера.
Шаг 4. Настройка подписи в Xcode
Самый простой путь — автоматическое управление подписью. Откройте проект в Xcode, перейдите в настройки таргета на вкладку Signing & Capabilities и включите опцию Automatically manage signing. Затем выберите свою команду разработчика (Team) в выпадающем списке.
Xcode сам найдёт или создаст нужные сертификаты и provisioning-профили, зарегистрирует подключенное устройство и настроит Bundle ID. Для большинства одиночных разработчиков этого достаточно — ручное управление профилями требуется в основном в CI/CD-сборках и при сложных корпоративных схемах.
Чтобы убедиться, что всё настроено верно, подключите iPhone по кабелю, выберите его как цель сборки и запустите проект. На устройстве может потребоваться подтвердить доверие разработчику в настройках: Настройки → Основные → VPN и управление устройством.
Различия типов сертификатов и сроки действия
Выбор типа сертификата зависит от задачи. Ниже — сравнение основных характеристик; точные условия могут меняться, сверяйтесь с документацией Apple.
| Параметр | Apple Development | Apple Distribution |
|---|---|---|
| Назначение | Отладка на своих устройствах | Публикация в App Store, TestFlight, Ad Hoc |
| Количество устройств | Ограничено зарегистрированными устройствами | Через App Store — без ограничений |
| Срок действия | Ограничен, проверяйте в портале | Ограничен, проверяйте в портале |
| Отзыв сертификата | Не влияет на опубликованные приложения | Не удаляет уже установленные приложения из App Store |
⚠️ Внимание: отзыв (revoke) Distribution-сертификата не удаляет ваше приложение из App Store, но заблокирует возможность загружать новые сборки, пока не будет выпущен новый сертификат. Действуйте осознанно, особенно в командных аккаунтах.
Типичные ошибки и их решение
Даже при правильной последовательности действий подпись иногда «ломается». Вот наиболее частые ситуации и способы их разобрать.
«No signing certificate found» — Xcode не видит сертификат. Проверьте, установлен ли файл .cer в Связку ключей и есть ли под ним закрытый ключ. Если ключа нет, сертификат выпускался с другого Mac: экспортируйте связку в .p12 или создайте новый CSR.
«Provisioning profile doesn't include signing certificate» — профиль создан под другой сертификат. Удалите профиль в портале или локально и позвольте Xcode сгенерировать новый при включённой автоматической подписи.
Истёкший сертификат. Сертификаты имеют ограниченный срок действия. При истечении выпустите новый сертификат тем же способом и обновите профили — уже опубликованные приложения при этом продолжат работать.
Конфликт в команде. Если несколько разработчиков используют один аккаунт, убедитесь, что каждый экспортировал свои ключи корректно, либо выпустите отдельные сертификаты для каждого Mac.
FAQ: частые вопросы о сертификате разработчика iOS
Можно ли создать сертификат без платного аккаунта Apple Developer?
Полноценные сертификаты Development и Distribution выдаются только участникам платной программы. С бесплатным Apple ID Xcode создаёт временный личный сертификат, позволяющий тестировать приложение на собственном устройстве с ограничениями по сроку и функциям.
Сколько сертификатов можно создать на один аккаунт?
Apple ограничивает количество активных сертификатов каждого типа в рамках аккаунта. Если лимит исчерпан, отзовите неиспользуемый сертификат или экспортируйте существующий в формате .p12 для другого Mac.
Что делать, если я потерял закрытый ключ?
Восстановить ключ невозможно. Создайте новый CSR в Связке ключей и выпустите новый сертификат в портале разработчика, после чего обновите provisioning-профили. Опубликованные приложения продолжат работать.
Нужно ли перевыпускать сертификат при смене Mac?
Не обязательно: можно экспортировать сертификат вместе с закрытым ключом в файл .p12 и импортировать его на новый компьютер. Альтернатива — выпустить отдельный сертификат для нового Mac.
Чем сертификат отличается от provisioning profile?
Сертификат подтверждает вашу личность как разработчика, а provisioning profile связывает этот сертификат с конкретным App ID и списком устройств. Для установки и публикации приложения нужны оба компонента в согласованном виде.