it-swarm.com.ru

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

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

Подробности:

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

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

13
e2l3n

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

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

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

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

16
just.jimmy

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

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

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

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

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

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

0
Jennifer

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

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

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

0
irodrigo17