У меня есть приложение в App Store, которое работает с CloudKit, и удаленные уведомления там работают очень хорошо. Если пользователь изменяет запись, он запускает уведомление pu sh на своих других устройствах, и вызывается AppDelegate didReceiveRemoteNotification
.
В среде разработчиков я добавил несколько новых сущностей, но в моем тестировании уведомления pu sh больше не принимаются. В основном didReceiveRemoteNotification
не вызывается вообще.
Некоторые важные замечания:
это не работает только на iOS ... в моем приложении Ma c, указывая на тот же контейнер CloudKit, удаленные уведомления принимаются правильно, так что это никак не связано с тем, как подписка CloudKit создается или изменяется (в любом случае я ничего не изменил в этом отношении)
Я звоню registerForRemoteNotifications
как и раньше, и didRegisterForRemoteNotificationsWithDeviceToken
называется ожидаемым
Я тестирую на устройстве, а не на симуляторе
Фоновое приложение Refre * На устройстве включено 1057 *
Для приложения разрешены уведомления
Объект CKNotificationInfo создается с shouldSendContentAvailable
= YES и alertBody
= @ "" (не ноль)
Я копался в журналах консоли устройства, используя XCode, и обнаружил, что консоль выводит что-то, что говорит о том, что устройство получение уведомления pu sh, но по какой-то причине оно не передается в приложение:
default 18:02:47.127117 -0800 SpringBoard Received incoming message on topic com.apple.icloud-container.com.ztest.myapp at priority 10
default 18:02:47.133708 -0800 SpringBoard [com.ztest.myapp] Received remote notification request 0E01-5E4D [ waking: 0, hasAlertContent: 0, hasSound: 0 hasBadge: 0 hasContentAvailable: 1 hasMutableContent: 0 pushType: Alert]
default 18:02:47.133780 -0800 SpringBoard [com.ztest.myapp] Process delivery of push notification 0E01-5E4D
error 18:02:47.133851 -0800 SpringBoard [com.ztest.myapp] NOT requesting DUET deliver content-available, non-notifiying push notification 0E01-5E4D [pushType: Alert willNotifyUser: 0]
error 18:02:47.133997 -0800 SpringBoard [com.ztest.myapp] NOT delivering non-notifying push notification 0E01-5E4D [pushType: Alert willNotifyUser: 0]
default 18:02:47.134053 -0800 SpringBoard Getting effectiveSectionInfo for section identifier: com.ztest.myapp
default 18:02:47.134099 -0800 SpringBoard [com.ztest.myapp] Getting effective section info
default 18:02:47.135743 -0800 SpringBoard [com.ztest.myapp] Got effective section info [ hasResult: 1 ]
Я не совсем уверен, но кажется, что единственная строка, которая показывает «ошибку» с «НЕ доставляющим уведомления без уведомления pu sh», объяснит проблему. Но я не уверен, что является причиной этого. Может ли быть просто нестабильная среда разработки? Я попробовал это на нескольких iOS устройствах сейчас, так что это не просто проблема с этим одним устройством.
Может кто-нибудь предложить какие-либо причины, по которым уведомление о pu sh не получено в приложении, или предложить какой-нибудь способ проверить это и сузить, что происходит?
Спасибо.
ОБНОВЛЕНИЕ
Оказывается, я не совсем уверен, работает ли тихое уведомление pu sh на рабочей версии! Похоже, что pu sh отправляется сервером CloudKit (глядя на CK Dashboard), но не принимается на устройстве.