Push-уведомления не принимаются на iOS 10, но работают на iOS 9 и ранее

У меня есть несколько приложений, написанных на Swift 2.2, скомпилированных с Xcode 7.3 и доступных в App Store. Приложения используют Push-уведомления и отлично работают в iOS 9.3 и более ранних версиях.

Однако на устройствах, которые были обновлены до iOS 10, мои приложения не получают push-уведомлений. Устройства с iOS 9 все еще получают уведомления.

Думая, что это может быть проблема с сертификатом или разрешением, я попробовал следующее: Обновил одно из моих приложений до Swift 2.3, добавил право среды APS и скомпилировал его в Xcode 8, но это не имело значения.

В моем AppDelegate у меня все еще есть существующие методы для регистрации push-уведомлений, которые включают в себя:

let notificationSettings = UIUserNotificationSettings(forTypes: [.Badge, .Sound, .Alert], categories:nil)
application.registerUserNotificationSettings(notificationSettings)

Эта регистрация кажется успешной даже на iOS 10, так какПриложение didRegisterForRemoteNotificationsWithDeviceToken затем вызывается, поэтому я получаю токен от APNS.

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

Сейчас,Вот сказано, что методы на UIApplicationDelegate устарели на iOS 10, и я должен реализовать userNotificationCenter (: didReceive: withCompletionHandler :) и userNotificationCenter (: WillPresent: withCompletionHandler :)

Проблема в том, что я не нацелен ТОЛЬКО на iOS 10. Мне все еще нужно приложение для работы на iOS 8 и 9, поэтому я сомневаюсь, что это правильный подход для реализации этих методов.

Как получить push-уведомления для существующего приложения, чтобы продолжить работу на устройствах, которые были обновлены до iOS 10? Нужно ли переписывать код? Мне просто нужно обновить некоторые сертификаты или права и перекомпилировать в Xcode 8 с некоторыми "новыми" настройками?

Ответы на вопрос(5)

Ваш ответ на вопрос