0

Наше приложение теперь использует производственный сертификат для iOS push-уведомлений.iOS Push Certs Fail For «Нет» Причина

Мы прошли через несколько раундов, где толкает работу, а затем они просто перестают работать. Часто «остановка работы» связана с некоторым сбоем сервера. Однако используемый нами сервер говорит, что мы все еще предъявляем иск к тем же p12, которые были сгенерированы, когда я делал сертификаты, но они получают код ошибки 8 от Apple, что означает, что это токен invalide.

Я восстанавливаю сертификаты и «загрязняет» профили/идентификаторы перезагружают p12s на сервере, и все работает отлично ... на некоторое время. Затем они просто волшебным образом начинают получать «код ошибки 8», и нам нужно начинать все заново.

Сегодня я заметил, что предыдущая сборка нашего приложения работает отлично, но в текущей сборке нет. Они были созданы с одинаковыми профилями обеспечения и/или профилями распределения предприятия, оба использовали те же сертификаты для идентификатора приложения, оба загружались до TestFlight (только для информационных целей) и имели в них одинаковый код, связанный с Push.

Странно то, что когда я использую старшую сборку, я возвращаю токен устройства 4xxxxx ... (последовательно один и тот же), и когда я использую новую сборку, я последовательно возвращаю токен устройства 5xxxxx ... из Apple (последовательно одна и та же).

Я знаю, что предыдущая сборка ранее получала маркер устройства 5xxxx ..., потому что я проверяю это на довольно последовательной основе.

Тем не менее, я заметил, что некоторые из наших тестеров зарегистрированы для большего количества токенов устройств, чем они говорят, что у них есть устройства, поэтому эта проблема длилась долгое время, и я ошибочно считал, что это еще одна проблема.

Что заставляет токен устройства иметь согласованные, но разные номера?

Что такое анатомия маркера устройства?

Кто-нибудь есть идеи, почему точно такие же профили/идентификаторы внезапно перестанут работать для того же самого толкающего сертификата?

Thanks

ответ

0

Токены устройства редко меняются. Единственные экземпляры, в которых я их знаю, - это когда вы обновляете версию iOS или восстанавливаете устройство из резервной копии. Таким образом, тот факт, что вы получаете разные токены для одного и того же устройства для разных сборок, вероятно, означает, что один из сборщиков использует сертификат sandbox, а другой использует производственный сертификат. Единственное другое объяснение, о котором я могу думать, это то, что для тестирования старой сборки вы восстановили свое устройство из резервной копии, тем самым изменив токен своего устройства.

Из описания вашей проблемы кажется, что ваша БД содержит комбинацию маркеров устройства песочницы и маркеров устройства производства. Они плохо смешиваются. Значки в песочнице недействительны в рабочей среде и наоборот.

Вы должны либо очистить свою БД, либо начать собирать токены устройства у своих пользователей, либо вы должны найти все маркеры, которые вызывают недействительный ответ маркера и удаляют их.

От компании Apple Technical Note:

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

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

Смежные вопросы