AdHoc build не получает push-уведомлений

Я разрабатываю push-уведомления для моего приложения, я написал поставщика на PHP, и он отлично работает. Ранее я тестировал push-уведомления с моими сборщиками dev и сервером sandbox от Apple, и все работало нормально, теперь я пытаюсь заставить его работать с сборкой AdHoc, но я никогда не получаю никаких сообщений на телефоне. Вот что я сделал:

  • Включить уведомления о производстве для приложения, создать сертификат, загрузить его, создать PEM в соответствии с инструкциями здесь и загрузить его на мой сервер, Настроил мой PHP Script, чтобы использовать gateway.push.apple.com и порт 2195 для подключения и протестировать его, подключение к серверу работает так, как ожидалось.
  • Макет полезной нагрузки такой же, как и dev, и запись в поток работает
  • После активации APN производства я воссоздал свой профиль подготовки AdHoc и проверил после сборки, что в правах aps-environment установлено значение "production" (что это такое)
  • Установил приложение через AdHoc на устройстве, которое раньше не запускало приложение, меня спрашивают, разрешать ли PN файлы, нажмите "да", и мой сервер получает токен так, как должен.
  • Попробовал отправить сообщение (которое должно было отправить на 3 устройства) через производственную среду. При подключении к Apple или отправке данных нет ошибки, но я не получаю push-уведомления на любом из устройств.

Я действительно из идей, что может быть неправильно, кто-нибудь есть идея? Большое спасибо!

Ответ 1

Я, наконец, понял это, проблема в том, что если вы открываете соединение с APNS и отправляете более одного push-уведомления, и один из токенов, которые вы отправляете, не является токеном, действительным для этого сертификата (например, вы отправляете маркер, принадлежащий экземпляру dev, когда он связан с производственным сертификатом) APNS отменяет доставку всех PN, которые вы отправили в этой партии. По крайней мере, это то, что я испытал до сих пор, поэтому обязательно следите за тем, чтобы ваши девственные и производственные токены были приятно разделены:)

Ответ 2

Push-сертификаты для производства и разработки разные. И для создания более сложных токенов для производства и песочницы разные для одного и того же устройства. Перекрестите проверку, если они верны, и я уверен, что вы должны запятнать в этом. Чтобы получить токен устройства в режиме "Производство", напишите alertview в событии AppDelegate didreceivenotifications.

Как только вы получите этот токен, вы узнаете, что он отличается от токена dev, который мы генерируем, поэтому вы не смогли отправить уведомление по PROD

Ответ 3

Я борюсь с той же проблемой. Я считаю, что проблема заключается в том, что с помощью adhoc-сборок apple будет отправлять уведомления только с сервера apns производства, попробуйте это.

Ответ 4

Для сборки распределения и выпуска всегда используйте производственный сертификат.