Push-уведомление с использованием библиотеки C# Push Sharp не работает на рабочем сервере

После создания сертификата я только экспортировал закрытый ключ (без сертификата) в доступ к цепочке ключей, экспортировал как .p12 и использовал файл, и это не сработало. Я экспортировал только сертификат и экспортировал как .p12 и использовал файл, и он также не работал.

Исключение составляет:

Вы выбрали рабочий сервер, но ваш сертификат не является производственным сертификатом! Пожалуйста, проверьте, чтобы убедиться, что у вас есть правильный сертификат!

Если я использую тот же .p12 с библиотекой MoonAPNS, он работает нормально, но не с библиотекой PUSHSHarp. Я использую push Sharp только для тихих уведомлений.


person Rajesh    schedule 18.01.2016    source источник


Ответы (1)


Apple представила новый унифицированный сертификат push-уведомлений, который действителен как для песочницы, так и для рабочих серверов. Этот новый сертификат имеет немного другое имя субъекта (раньше он содержал либо Apple Production IOS Push Services, либо Apple Development IOS Push Services, а теперь он содержит Apple Push-сервисы).

PushSharp 2.x не знает об этом новом формате и по-прежнему ожидает проверки старых имен субъектов, поэтому считает ваш сертификат недействительным.

Рекомендуется использовать PushSharp 3.x (в настоящее время предварительная версия доступна в NuGet), которая правильно проверяет новый тип сертификата. Я бы порекомендовал обновиться до версии 3.x (конечно, в этом есть некоторые критические изменения API).

Если вы все еще настаиваете на использовании PushSharp 2.x, вы можете переопределить проверку сертификата, установив для параметра disableCertificateCheck значение true в конструкторе класса ApplePushChannelSettings.

person Redth    schedule 18.01.2016
comment
Установка true в ApplePushChannelSettings для disableCertificateCheck предотвращает исключение, но уведомления по-прежнему не отправляются. Сертификат действителен и протестирован на моем Mac, но PushSharp, похоже, больше с ним не работает. - person andreas; 25.01.2016
comment
Убедитесь, что если ваш токен устройства сгенерирован из сборки с использованием профиля подготовки AdHoc или AppStore, вы указываете PushSharp подключиться к рабочему серверу (в противном случае токены устройства, сгенерированные из сборки с использованием профиля подготовки разработки, обязательно сообщите об этом песочнице) . - person Redth; 27.01.2016