Push-уведомления не работают в производственной среде - PullRequest
2 голосов
/ 25 мая 2010

Когда я запускаю свое приложение в режиме разработки, я могу без проблем получать push-уведомления, которые я отправляю себе через PushMeBaby. Однако, когда я пытаюсь протестировать его в производственной среде, я не могу получить никаких push-уведомлений. Я заново сгенерировал все сертификаты и профили обеспечения, использовал aps_production_identity.cer в качестве сертификата для push-уведомлений, изменил SSL на gateway.push.apple.com и выполнил сборку релиза для приложения, но все еще не мог получить это на работу. Я обнаружил, что в PushMeBaby, строка

result = SSLHandshake(context);

Возвращает ошибку -9844. Значит ли это, что что-то не так с файлом aps_production_identity.cer?

Ответы [ 2 ]

1 голос
/ 01 июня 2012

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

Я изменил эту строку на что-то вроде этого:

#define kApplePushGateway "gateway.push.apple.com" //"gateway.sandbox.push.apple.com"

result = SSLSetPeerDomainName(context, kApplePushGateway, [[NSString stringWithUTF8String:kApplePushGateway] length]);
NSLog(@"SSLSetPeerDomainName(): %d", result);
1 голос
/ 10 июня 2010

Да, я решил эту ошибку. Я потерял несколько дней, чтобы найти решение. Проблема в строке:

result = SSLSetPeerDomainName(context, "gateway.sandbox.push.apple.com", 30);
NSLog(@"SSLSetPeerDomainName(): %d", result);

Вы должны изменить порт на номер 30. Это решает проблему.

...