【发布时间】:2015-02-12 04:26:57
【问题描述】:
我尝试在我的应用中使用CloudKit 订阅,但didReceiveRemoteNotification 没有被触发。
我将CKSubscription 保存到CloudKit。为了确保它们存在,当应用程序启动时,我将它们绘制出来,例如:
<CKSubscription: 0x15576310; ; Query Subscription: recordType=DailyVote, predicate=TRUEPREDICATE, subscriptionOptions=7, subscriptionID=1FA456A6-9BA5-411D-97B9-1EB57121A5D0, zoneID=(null)> predicate: TRUEPREDICATE subscriptionType: (Enum Value) subscriptionOptions: C.CKSubscriptionOptions
我尝试按照apple doc 的建议在 APN 服务器上注册我的设备,但调用了错误委托方法,并显示消息:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
application.registerUserNotificationSettings(UIUserNotificationSettings(forTypes: .Alert, categories: nil))
application.registerForRemoteNotifications()
return true
}
func application(application: UIApplication, didFailToRegisterForRemoteNotificationsWithError error: NSError) {
println("error: \(error.localizedDescription)")
//error: no valid aps-environment entitlement found for application
}
-
CloudKit功能已开启 - 我没有无效的配置文件
- 我成功了:
Xcode>Preferences>Accounts>pick your Account>pick your Team>View Details>PRESS REFRESH BUTTON - 我什至创建了一个新的应用程序,使用新的 iCloud 容器,移动了所有逻辑,但错误是一样的,订阅通知不起作用。
【问题讨论】:
-
您确定推送通知的后端配置正确并发布推送通知吗?
-
如果你在容器上做一个accountStatusWithCompletionHandler,它会返回什么?它是否返回可用状态?
-
返回
Available -
可能是您的配置文件设置不正确,或者可能是 Xcode 使用了不同的配置文件(您是否将其设置为自动选择配置文件?):stackoverflow.com/questions/10987102/…
-
@János 还不错。我将其发布为评论而不是答案是有原因的。也不要相信文档,它通常是错误的或仅适用于旧版本的 iOS。相反,你必须相信实际行为——你现在已经做到了。 :-) 抱歉,我目前没有什么可以提供的,除了可能要创建一个新的 Xcode 项目并尝试重现该错误。
标签: ios apple-push-notifications cloudkit cksubscription