Я разработал приложение для iOS, которое получает push-уведомления. Я отправляю их из среды .NET с помощью PushSharp. При разработке все прошло прекрасно, и Push'ы были успешно отправлены:
var push = new PushBroker();
var appleCert = File.ReadAllBytes(@"Utils\Cert.Development.p12");
push.RegisterAppleService(new ApplePushChannelSettings(false, appleCert, "*******"));
push.QueueNotification(new AppleNotification()
.ForDeviceToken(token)
.WithContentAvailable(1)
);
push.StopAllServices();
Теперь приложение одобрено и находится в AppStore. Я создал правильный производственный сертификат:
var push = new PushBroker();
var appleCert = File.ReadAllBytes(@"Utils\Cert.Production.p12");
push.RegisterAppleService(new ApplePushChannelSettings(true, appleCert, "*******"));
push.QueueNotification(new AppleNotification()
.ForDeviceToken(token)
.WithContentAvailable(1)
);
push.StopAllServices();
но когда я пытаюсь отправить push из PushSharp, он выдает следующее исключение:
You have selected the Production server, yet your Certificate does not appear to be the Production certificate! Please check to ensure you have the correct certificate!
Я почти уверен, что выполнил все шаги. Я скачал производственный сертификат, который был связан с файлом подготовки, установленным в приложении для публикации. Открыл его и экспортировал .p12.
Я также уверен, что не случайно использую версию для разработки, потому что, если я установлю PushSharp для разработки, используя этот последний сертификат, он выдаст следующую ошибку:
You have selected the Development/Sandbox (Not production) server, yet your Certificate does not appear to be the Development/Sandbox (Not production) certificate! Please check to ensure you have the correct certificate!
Как может сертификат быть ни разработкой, ни производством?
Где-то я могу проверить файл? Пожалуйста, дайте мне немного информации по этому вопросу, так как я понятия не имею, с чего начать.