Push-уведомление с использованием библиотеки C# Push Sharp не работает на производственном сервере
После того, как сертификат сгенерирован, я только экспортировал закрытый ключ (без сертификата) в доступе Цепочки для ключей, экспортировал как.p12 и использовал файл, и это не работало. Я экспортировал только сертификат и экспортировал как.p12 и использовал файл, и он также не работал.
Исключение составляет:
Вы выбрали производственный сервер, но ваш сертификат не является производственным сертификатом! Пожалуйста, проверьте, чтобы убедиться, что у вас есть правильный сертификат!
Если я использую тот же.p12 с библиотекой MoonAPNS, он работает нормально, но не с библиотекой PUSHSHarp. Я использую Push Sharp только для тихих уведомлений.
1 ответ
Apple представила новый унифицированный сертификат push-уведомлений, который действителен как для песочницы, так и для производственных серверов. Этот новый сертификат немного отличается от имени субъекта (раньше он содержал Apple Push IOS Push Services или Apple Development IOS Push Services, а теперь он содержит Apple Push Services).
PushSharp 2.x не знает об этом новом формате и все еще ожидает, что старые имена субъектов будут проверены, поэтому он считает ваш сертификат недействительным.
Рекомендуется использовать PushSharp 3.x (предварительная версия доступна на NuGet), и он правильно проверяет новый тип сертификата. Я бы порекомендовал обновиться до версии 3.x (конечно, в этом есть некоторые критические изменения API).
Если вы по-прежнему настаиваете на использовании PushSharp 2.x, вы можете отменить проверку сертификата, установив disableCertificateCheck
параметр для true
в ApplePushChannelSettings
конструктор класса.