ПРИМЕЧАНИЕ: Для выполнения любой из этих задач у вас должна быть роль Team Agent или Admin в App Store Connect. Если вы не являетесь частью команды в App Store Connect, это, вероятно, не повлияет на вас.
Отправка push-уведомлений в приложение iOS требует создания ключей шифрования. В прошлом это был громоздкий процесс, в котором использовались ключи и сертификаты SSL. Каждый сертификат SSL был специфичен для одного приложения iOS. В 2016 году Apple представила новый механизм ключа аутентификации, который стал более надежным и простым в использовании. Новые ключи аутентификации стали более гибкими, простыми в обслуживании и применимы не только в приложениях iOS.
Несмотря на то, что прошло много лет с момента введения ключей аутентификации, не все службы их поддерживают. FireBase и Amazon Pinpoint поддерживают ключи аутентификации. Amazon SNS, Urban Airship, Twilio и LeanPlum этого не делают. Многие пакеты программного обеспечения с открытым исходным кодом еще не поддерживают ключи аутентификации.
Чтобы создать необходимый сертификат SSL и экспортировать его в файл PEM, содержащий открытый и закрытый ключи:
- Перейти к сертификатам, идентификаторам и профилям
- Создание или изменение идентификатора приложения.
- Включить Push-уведомления для идентификатора приложения
- Добавление SSL-сертификата к идентификатору приложения
- Конвертировать сертификат в формат PEM
Если у вас уже есть сертификат SSL, настроенный для приложения на веб-сайте Apple Developer Center, вы можете пропустить этот пункт, чтобы преобразовать сертификат в формат PEM. Имейте в виду, что у вас возникнут проблемы, если у вас также не будет закрытого ключа, сгенерированного на Mac, который создал запрос на подпись, который был загружен в Apple.
Читайте дальше, чтобы узнать, как избежать потери этого закрытого ключа.
Перейти к сертификатам, идентификаторам и профилям
Xcode не контролирует сертификаты или ключи для push-уведомлений. Чтобы создать ключи и включить push-уведомления для приложения, необходимо перейти на веб-сайт Apple Developer Center. Раздел «Сертификаты, идентификаторы и профили» вашей учетной записи контролирует идентификаторы приложений и сертификаты.
Чтобы получить доступ к сертификатам и профилям, вы должны либо иметь платное членство в программе Apple Developer Program, либо быть частью команды, которая делает это.
- Войдите на веб-сайт Apple Developer
- Перейти к Учетная запись , затем Сертификаты, идентификаторы и профили
Создать идентификатор приложения
Приложения, использующие push-уведомления, не могут использовать идентификаторы приложений с подстановочными знаками или профили обеспечения. Каждое приложение требует настройки записи идентификатора приложения на портале Apple Developer Center для включения push-уведомлений.
- Перейти к Идентификаторы приложений под Идентификаторы
- Найдите ваше приложение, используя идентификатор пакета. Возможно, он уже существует.
- Если для приложения не существует идентификатора приложения, нажмите кнопку (+), чтобы создать его.
- Выберите Явный идентификатор приложения в разделе App ID Суффикс.
- Введите идентификатор пакета для приложения.
- Прокрутите вниз и включите Push-уведомления .
- Нажмите Продолжить .
- На следующем экране нажмите Зарегистрировать , чтобы завершить создание идентификатора приложения.
Включить Push-уведомления для идентификатора приложения
- Перейти к Идентификаторы приложений под Идентификаторы
- Нажмите на идентификатор приложения, чтобы увидеть подробности, и прокрутите вниз.
- Нажмите Редактировать
- На экране настроек идентификатора приложения прокрутите вниз до Push-уведомления
- Установите флажок, чтобы включить push-уведомления.
Создание SSL-сертификатов для push-уведомлений - это процесс нескольких задач. Каждая задача имеет несколько шагов. Все это необходимо для экспорта ключей в формате P12 или PEM. Просмотрите шаги, прежде чем продолжить.
Добавление SSL-сертификата к идентификатору приложения
- В разделе «Разработка SSL-сертификата» нажмите Создать сертификат . Вам нужно будет сделать это позже и для производства.
- Apple попросит вас создать запрос на подпись сертификата.
Для создания сертификата вам нужно будет сделать запрос на подпись сертификата (CSR) на Mac и загрузить его в Apple.
Позже, если вам нужно экспортировать этот сертификат как файл pkcs12 (он же p12), вам нужно будет использовать цепочку для ключей с того же Mac . При создании запроса на подпись Keychain Access генерирует набор ключей в цепочке для ключей по умолчанию. Эти ключи необходимы для работы с сертификатом, который Apple создаст из запроса на подпись.
Рекомендуется иметь отдельную цепочку для ключей специально для учетных данных, используемых для разработки. Если вы сделаете это, убедитесь, что эта цепочка для ключей установлена по умолчанию перед использованием Certificate Assistant.
Создание цепочки для ключей для учетных данных для разработки
- Открыть доступ к связке ключей на вашем Mac
- В меню Файл выберите Новая цепочка для ключей ...
- Дайте вашей связке ключей описательное имя, например "Shared Development" или название вашего приложения
Создание запроса на подпись сертификата (CSR)
При создании запроса на подпись сертификата помощник по сертификации генерирует два ключа шифрования в цепочке ключей по умолчанию. Важно сделать связку ключей разработки по умолчанию, чтобы ключи находились в правой связке ключей.
- Откройте доступ к связке ключей на вашем Mac.
- Ctrl + клик по цепочке для ключей разработки в списке цепочек для ключей
- Выбрать Сделать брелок "Общая разработка" по умолчанию
- В меню Keychain Access выберите Ассистент сертификации , затем Запросите сертификат у центра сертификации ... из подменю.
- Когда появляется Ассистент Сертификата, отметьте Сохранено на диск .
- Введите адрес электронной почты, связанный с членством в программе Apple Developer Program, в Адрес электронной почты пользователя .
- Введите имя ключа в поле Common Name . Рекомендуется использовать идентификатор пакета приложения как часть общего имени. Это позволяет легко определить, какие сертификаты и ключи принадлежат какому приложению.
- Нажмите продолжить. Ассистент сертификатов предложит сохранить запрос на подпись в файл.
- В Keychain Access снова установите брелок «логин» по умолчанию.
При создании запроса на подпись генерируется пара ключей. Перед загрузкой запроса на подпись убедитесь, что ключи цепочки разработки имеют ключи. Их имена будут такими же, как Общее имя , используемое в запросе на подпись.
Загрузить запрос на подпись сертификата (CSR)
После создания запроса на подпись сертификата загрузите его в Центр разработчиков Apple. Apple создаст сертификат push-уведомлений из запроса на подпись.
- Загрузить запрос на подпись сертификата
- Загрузите сертификат, который Apple создала из запроса на подпись сертификата
- В Keychain Access выберите связку ключей разработки из списка цепочек для ключей
- В меню Файл выберите Импортировать элементы ...
- Импорт файла сертификата, загруженного с Apple
Ваша цепочка для ключей разработки теперь должна отображать push-сертификат с закрытым ключом в Мои сертификаты в Доступе для цепочки ключей:
На этом этапе следует создать резервную копию цепочки ключей разработки. Многие команды хранят свои push-сертификаты на защищенных USB-накопителях, осуществляют внутренний контроль версий или используют решения для резервного копирования, такие как Time Machine. Цепочка ключей разработки может использоваться несколькими членами команды, поскольку она не содержит никаких персональных учетных данных для подписи кода.
Файлы цепочки для ключей расположены в ~/Library/Keychains
.
Некоторым сторонним push-сервисам требуются сертификаты в формате Privacy Enhanced Mail (PEM), в то время как другим требуются стандарты шифрования с открытым ключом № 12 (PKCS12 или P12). Сертификат, загруженный из Apple, можно использовать для экспорта сертификатов в этих форматах, но только если вы сохранили закрытый ключ.
Преобразовать сертификат в формат PEM
- В Keychain Access выберите созданную ранее цепочку для ключей разработки.
- Выберите push-сертификат в Мои сертификаты . Там должен быть закрытый ключ с ним.
! [Загрузить сертификат CER] (связка ключей / импорт завершен.png)
- В меню Файл выберите Экспорт элементов ...
- На открывшейся панели сохранения выберите Privacy Enhanced Mail (.pem) в качестве формата файла.
- Сохранить файл