Подтвердить что ты не робот

Приложение iOS отсутствует в центре уведомлений

Проблема: Приложение не появляется в центре уведомлений и не может получать push-уведомления сразу после завершения установки, а приложение регистрирует push-уведомления через registerForRemoteNotificationTypes:.

Подробнее:

  • Приложение обычно появляется в центре уведомлений после перезапуска устройства, после чего все работает нормально.
  • Иногда приложение появляется в центре уведомлений сразу после инсталляции и регистрации для APN (я все еще не могу подтвердить это, но я думаю, что наткнулся на такие ситуации).
  • Приложение вызывает метод registerForRemoteNotificationTypes каждый раз, когда пользователь входит в систему и каждый раз, когда пользователь выходит из строя соответственно с помощью бит-масок (UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound) и UIRemoteNotificationTypeNone.
  • enabledRemoteNotificationTypes возвращает правильные значения.
  • Первоначально я использовал метод unregisterForRemoteNotifications при выходе из системы, но я изменил его на registerForRemoteNotificationTypes:UIRemoteNotificationTypeNone из-за подозрений, что это может вызвать проблему.
  • Эта проблема возникает как в разработке, так и в adhoc-сборках и независимо от того, установлено ли приложение через xcode или itunes.

Любые мысли и советы будут высоко оценены. Спасибо!

4b9b3361

Ответ 1

Это происходило с некоторыми из моих устройств. (Не отображается в центре уведомлений и не получает нажатия).

Удалось выполнить это:

  • Удалить приложение
  • Удалите все необходимые профили с устройства. "Настройки" > "Основные" > "Профили", затем коснитесь каждого из профилей Provisioning Profiles, связанных с вашим приложением, затем нажмите "Удалить". На iOS 8/9, где настройка больше не существует, используйте XCode > Windows > Устройствa > выберите устройство > Показать профили подготовки... > затем удалите профиль (ы)
  • Выключите телефон, затем снова включите.
  • Дайте 5 минут
  • Переустановите приложение, профиль Provisioning Profile должен быть установлен автоматически.
  • Запустите приложение и зарегистрируйтесь и напишите.
  • Повторное тестирование push-уведомлений

Для нас это не сработало сразу, поэтому дайте ему несколько минут.

Ответ 2

Возможно, существует проблема с регистрацией и отмена регистрации приложения при регистрации/выходе из системы, из документации Apple:

Приложение должно регистрироваться при каждом запуске и предоставлять своему провайдеру текущий токен.

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

Ответ 3

Ну, у меня также есть эта проблема, я обнаружил, что, поскольку приложение использовало unregisterForRemoteNotifications перед деинсталляцией при предыдущей установке.

И, кроме того, если приложение будет установлено снова и войдите в систему для регистрации для удаленных уведомлений, эта проблема произойдет.

Это произошло и при первой установке (установленной после reset вашего устройства iOS). если вы используете функцию unregisterForRemoteNotifications перед входом в систему, а затем зарегистрируйтесь при операции входа в систему, эта проблема произойдет.

Как только эта проблема возникла, вам необходимо перезапустить устройство iOS.

Для unregisterForRemoteNotifications мы не смогли остановить эту проблему, но мы можем уменьшить вероятность возникновения проблемы, метод:

Если токен устройства не удалялся из поставщика при предыдущей установке, используйте unregisterForRemoteNotifications при текущей установке перед входом в систему; В противном случае вы никогда не должны использовать unregisterForRemoteNotifications.