CloudKit 订阅错误:apsd[81] <警告>:静默推送:拒绝应用程序不可用
Posted
技术标签:
【中文标题】CloudKit 订阅错误:apsd[81] <警告>:静默推送:拒绝应用程序不可用【英文标题】:CloudKit subscription Error: apsd[81] <Warning>: Silent Push: Deny app not available 【发布时间】:2015-07-23 19:58:48 【问题描述】:我正在尝试从 CloudKit 获得静默推送。但它仅在我的应用程序在前台时有效(或者当它从 Xcode 启动时,在这种情况下通知也在后台传递)。
我已启用所有相应的背景模式。
注册remoteNotifications并在didFinishLaunchingWithOptions中指定后台fetchInterval
UIApplication.sharedApplication().setMinimumBackgroundFetchInterval(UIApplicationBackgroundFetchIntervalMinimum)
application.registerForRemoteNotifications()
我得到 didRegisterForRemoteNotificationsWithDeviceToken 没有问题。
我已经实现了处理远程通知的方法:
func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject], fetchCompletionHandler completionHandler: (UIBackgroundFetchResult) -> Void)
NSLog(__FUNCTION__)
let identifier : UIBackgroundTaskIdentifier = UIApplication.sharedApplication().beginBackgroundTaskWithExpirationHandler()
CoreDataStack.sharedInstance.ensemblesSynchronizeWithCompletion()
UIApplication.sharedApplication().endBackgroundTask(identifier)
completionHandler(UIBackgroundFetchResult.NewData)
我尝试将 CloudKit 容器切换到生产环境并使用 TestFlight 进行测试。 结果总是相同的:在前台我收到 CKNotifications,但对于控制台中的背景,我看到了:
错误:apsd[81]:静默推送:拒绝应用不可用
另外我已经尝试过: 完全更换容器 - 不走运。
我也相应地编辑了我的 AppID,但我认为 CloudKit 通知没有必要(或者是吗?):
在设置中一切都已启用:
从设备启动时的控制台输出(不是来自 Xcode)
应用程序运行前台:
应用运行后台:
从 Xcode 启动时,我会在后台和前台收到通知。
【问题讨论】:
是请求用户权限使用push的情况吗?可能您的应用在“设置”应用中没有权限。 后台应用刷新,设置中允许通知。 您想通过从后台状态执行的方法内部使用后台任务来完成什么?从您的代码中并不清楚。 【参考方案1】:如果您强制退出应用程序,ios 将停止在后台向您的应用程序发送推送通知。当您从 Xcode 运行您的应用并想要退出时,请确保您从 Xcode“停止”该进程,而不是从设备上的应用切换器向上滑动。
您可能只需要重新启动手机即可让静音推送通知重新开始工作。
【讨论】:
谢谢,我知道了。以上是关于CloudKit 订阅错误:apsd[81] <警告>:静默推送:拒绝应用程序不可用的主要内容,如果未能解决你的问题,请参考以下文章
CloudKit“订阅重复”错误 - 获取 SubscriptionId