Ошибка сертификации APN для приложений Twilio Chat IOS-52131

У меня проблема с получением уведомлений в Twilio Chat с производственными сертификатами APN, я получаю сообщение об ошибке:

Ошибка - 52131 Недействительные учетные данные APN Возможные причины Учетные данные (сертификат и закрытый ключ) недействительны. Срок действия сертификата истек. Возможные решения Убедитесь, что у вас есть действующий сертификат и закрытый ключ, указанные в ваших учетных данных.

Когда я тестирую свою песочницу, APN сертифицирует push-уведомления.

Однако, когда я создаю сертификат APN PUSH SERVICES, загружаю его и связываю с моей программируемой функцией чата, я получаю сообщение об ошибке: 52131 - Недействительные учетные данные APN ... https://www.twilio.com/console/runtime/debugger/NOf2857a6c1db54e27984dd8fa9ff5100f

Чтобы уточнить, push-уведомления отлично работают в моем проекте разработки. Я использую сертификат APN для песочницы и установил флажок "Песочница"

Однако в производственной версии, где я использую:

  • Конкретный сертификат APN Apple Push Services, для уникального идентификатора приложения я получаю ошибку 52131.
  • Я не ставил галочку использовать для отправки в Sandbox учетные данные. Поскольку это выдвижная учетная запись
  • Я точно выполнил все инструкции по экспорту ключей сертификатов.
  • Я также использую отдельные ключи API и отдельный программируемый чат.
  • Я получаю регистрацию привязок, но никаких уведомлений, поскольку сертификат недействителен, и я не понимаю, почему, поскольку я проверял, повторно создавая сертификат много раз.

Я читал в некоторых ответах на аналогичные проблемы с сертификатом APN Sandbox и PUSH SERVICES с одним и тем же идентификатором приложения? Или не использовать один и тот же CertificateSigningRequest для создания песочницы и PUSH? Почему это должно иметь значение?

Это была ветка: https://github.com/twilio/voice-quickstart-objc/issues/101


person Ben Smith    schedule 12.07.2018    source источник
comment
Если ваш код работал с песочницей, а не с производственной версией, то это скорее проблема, а не проблема кода. Я бы порекомендовал связаться с службой поддержки Twilio, которая сможет вам помочь.   -  person philnash    schedule 12.07.2018
comment
Насколько я знаю, как их спросить, у меня есть github.com/twilio/voice -quickstart-swift / issues / 142 и да, я уверен, что это проблема с сертификатами, но я хочу услышать мнение людей, у которых были похожие проблемы   -  person Ben Smith    schedule 12.07.2018
comment
Справедливо. Я связался с формой группы поддержки в своем предыдущем комментарии, если это вообще помогает. Удачи разобраться :)   -  person philnash    schedule 13.07.2018
comment
дайте мне знать как можно скорее, если у нас есть какое-то решение, так как у меня такая же ошибка. Спасибо!   -  person Karoly    schedule 13.07.2018
comment
@Karoly проверьте мой ответ ниже   -  person Ben Smith    schedule 09.08.2018
comment
спасибо, это была проблема. После того, как я сделал новый сертификат с непродовольственной версией, он работал отлично. Прямо сейчас, если я нахожусь в приложении, оно вылетает при доставке уведомления. Если я на улице, все в порядке.   -  person Karoly    schedule 14.08.2018


Ответы (1)


Наконец, после нескольких недель электронной переписки в службу поддержки Twilio я нашел ответ.

В основном проблема была, вероятно, в том, что я каким-то образом извлек ключи из сертификата распространения, а не из сертификата Push. Поэтому убедитесь, что вы извлекаете правильные ключи из правильной сертификации. Также из-за того, что я удалял и удалял push-учетные данные из Twilio, так часто привязки к моим пользователям указывали на старые Push-учетные данные, которые не существовали, поэтому я удалил привязки, позволяющие регенерировать новые привязки при подключении к новому идентификатору безопасности Push-сертификата.

Другие вещи, которые важны для производственных уведомлений в программируемом чате Twilio:

  • Убедитесь, что для файла прав среды установлено значение "production".
  • Не проверяйте опцию песочницы в своем производственном сертификате (конечно)
  • Иногда могут возникать проблемы при создании push-сертификата с использованием certsigningrequest, который использовался для сертификата песочницы. Попробуйте создать новый файл для подписи сертификата только для производства
  • Когда вы тестируете свои производственные уведомления, они будут работать только в сборке магазина приложений, созданной с использованием вашего сертификата распространения. Вы не можете получать уведомления на симуляторе (очевидно). Вы не можете получать уведомления от приложения, созданного с использованием сертификата разработки ... поэтому вам необходимо создать и загрузить свое приложение в testflight, чтобы протестировать уведомления, а затем предпочтительно протестировать между двумя реальными устройствами ... или просто отправить уведомления из симулятора на устройство с построение на нем appstore / adhoc

На данный момент я не могу думать ни о чем другом, с чем я столкнулся. Служба поддержки Twilio очень хороша и постарается ответить на ваш вопрос, если вам понадобится помощь.

person Ben Smith    schedule 09.08.2018