У меня тоже была эта проблема, оказалось, что по какой-то причине мой закрытый ключ не соответствовал ключу, связанному с aps_developer_identity.cer, который у меня был ...
В итоге я очистил все моих открытых и закрытых ключей от элемента цепочки для ключей 'login', затем я снова запустил весь процесс (сгенерировал запрос) ... Я отправил новый файл запроса на портале программы и сгенерировал новый сертификат, скачал и установил его, дважды щелкнув по нему (developer_identity.cer). Затем я сбросил профили обеспечения, чтобы использовать новые сертификаты Push SSL, загрузил их и установил их, дважды щелкнув (aps_developer_identity.cer). Наконец, я сбросил профиль обеспечения и скачал новый. Я очистил старый в Xcode Organizer и установил новый. Наконец, я экспортировал свой «закрытый» ключ как key.p12 и мой aps_developer_identity.cer как apsdi.p12 и запустил следующие команды:
openssl pkcs12 -clcerts -nokeys -out apsdi.pem -in apsdi.p12
openssl pkcs12 -nocerts -out key.pem -in key.p12
Если вы в порядке, используя фразу-пароль (рекомендуется для производства):
cat apsdi.pem key.pem > cert.pem
Если вы хотите использовать «пустую» парольную фразу, вам сначала нужно расшифровать свой закрытый ключ, , используя пароль, указанный при преобразовании его в формат pem :
openssl rsa -in key.pem -out key.unencrypted.pem
А затем вставьте сертификат и незашифрованный ключ в apns.pem (или любое другое имя файла, которое вы выбрали):
cat apsdi.pem key.unencrypted.pem > apns.pem
Очень важно экспортировать свой сертификат aps_developer_identity, не свой сертификат developer_identity как apsdi.pem.
Если вы можете расширить свои записи developer_identity.cer и aps_developer_identity.cer в Keychain Access, и при этом вы увидите «закрытый» ключ, все должно работать.