Push-уведомление iPhone работает в песочнице, но не в рабочем режиме - PullRequest
6 голосов
/ 03 января 2012

Как видно из названия, у меня есть приложение со встроенным APNS.Он отлично работает в режиме песочницы.Но в производственном режиме он терпит неудачу.

Кажется, у меня есть правильные сертификаты на сервере, потому что я не получаю сообщение об ошибке от службы APNS.Кажется, все работает нормально.Я использую ApnsPHP Альдо Армиенто.Он имеет встроенную функцию для выдачи результатов с APNS-сервера.Когда я пытаюсь использовать Песочницу с приложением из магазина, я получаю - как и ожидалось - ошибку недопустимого токена (поскольку токены из песочницы и производства отличаются).Когда я использую производственный сертификат с приложением из магазина, я не получаю сообщение об ошибке.Ничего, нада, пшик - похоже, он доставил уведомление.Увы, он не приходит на мой телефон.

Так что, очевидно, сертификаты должны быть в порядке.Он подключается к серверу, отправляет уведомление, все проходит без ошибок (сначала у меня были неправильные сертификаты, поэтому я знаю, что произойдет, если они не правы):

Есть идеи, как выяснить, гдеошибка скрывается?

[Edit] вот что я получаю от APNS-Service:

Tue, 03 Jan 2012 03:13:55 +0100 ApnsPHP[13049]: INFO: Trying ssl://gateway.push.apple.com:2195...
Tue, 03 Jan 2012 03:13:56 +0100 ApnsPHP[13049]: INFO: Connected to ssl://gateway.push.apple.com:2195.
Tue, 03 Jan 2012 03:13:56 +0100 ApnsPHP[13049]: INFO: Sending messages queue, run #1: 1 message(s) left in queue.
Tue, 03 Jan 2012 03:13:56 +0100 ApnsPHP[13049]: STATUS: Sending message ID 1 [custom identifier: Message-Badge-000] (1/3): 107 bytes.
Tue, 03 Jan 2012 03:13:56 +0100 ApnsPHP[13049]: INFO: Disconnected.

Ответы [ 5 ]

11 голосов
/ 03 января 2012

Вот три случая, которые вы можете проверить на своем конце: -

  1. Убедитесь, что вы использовали правильный производственный сертификат на стороне вашего сервера.так как нам нужно создать два разных сертификата на производство и песочницу.убедитесь, что вы используете правильный сертификат на сервере.

  2. секунду, вы можете проверить, что вы используете правильный шлюз и номер порта на стороне сервера.Так как шлюзы для производства и песочницы разные.Шлюз, используемый для производства: - gateway.push.apple.com.а также вы используете правильный пароль на сервере для вашего сертификата, который вы использовали на вашем сервере.

  3. в-третьих, вы можете проверить, включено ли уведомление на вашем устройстве или нет.Вы должны включить его на своем iPhone, а также.Убедитесь, что оно установлено на вашем устройстве.

Дайте мне знать, работает ли оно у вас.

7 голосов
/ 24 октября 2014

Для меня, я борюсь с этим в течение нескольких дней. Используя правильный производственный сертификат и ключ, а также правильный шлюз для отправки сообщения на мой разрабатываемый iPhone, оно успешно отправлено в режиме песочницы, но в производственном режиме произошла ошибка. Это потому, что есть также два типа токенов устройства, тестируемый токен устройства iPhone - токен песочницы, который нельзя использовать в производственном режиме. Лучше использовать токен другого устройства для тестирования производственных APN.

Подробное объяснение: здесь

Самая распространенная проблема - неверный токен устройства. Если токен пришел из песочницы окружение, например, когда вы тестируете сборку разработки в доме, вы не можете отправить ее на производственный пуш сервис. Каждая push-среда выдаст свой токен для такое же устройство или компьютер. Если вы отправляете токен устройства в неправильную среду, нажмите служба увидит это как недействительный токен и откажется от уведомления.

1 голос
/ 24 июля 2012

См. Ответ в https://stackoverflow.com/a/11623162/496222

Вкратце: убедитесь, что оба сертификата SSL находятся в отдельном файле PEM.Наличие одного файла PEM как с песочницей, так и с производственным сертификатом приведет к сбою любой среды.

0 голосов
/ 24 февраля 2016

Это решило мою проблему, убедитесь, что установили правильное значение для kGGLInstanceIDAPNSServerTypeSandboxOption. Для режима разработки установлено значение ДА и для режима производства «НЕТ».

0 голосов
/ 13 марта 2014

проверьте также, включено ли в вашем Id-приложении push-уведомление

...