CloudKit推送通知订阅无效

时间:2015-03-12 17:59:59

标签: ios swift cloudkit

我尝试使用CloudKit订阅推送通知。我收到此错误:

<CKError 0x170c5b1e0: "Unknown Item" (11/2003); server message = "could not find required field fieldID="25""

来自此代码:

let subscription = CKSubscription(recordType: "PlayerData", predicate: NSPredicate(format: "TRUEPREDICATE"), options: CKSubscriptionOptions.FiresOnRecordCreation)
let notificationInfo = CKNotificationInfo()
notificationInfo.shouldBadge = false
subscription.notificationInfo = notificationInfo
PublicDb.saveSubscription(subscription, completionHandler: { (returnedSubscription: CKSubscription!, error: NSError!) in
     println("\(error)")
})

但我没有一个名为&#34; fieldID&#34;我的整个项目也没有任何参考。我不知道25来自哪里。如果我更改记录类型和/或NSPredicate,它仍会发生。

我也试过设置但没有

notificationInfo.shouldSendContentAvailable = true

这曾经适合我,但现在我不能让它工作了。好像我的数据库在某个地方被破坏了。我尝试删除记录类型并重新创建,但没有运气。

2 个答案:

答案 0 :(得分:7)

通过重置开发环境来修复它。希望同样的事情不会发生在prod上。 enter image description here

答案 1 :(得分:4)

同样的事情发生在我身上。我不认为fieldID是由于其他人的数据库,而是Apples底层数据库结构的一部分。不幸的是,这个读数给了我们开发人员零信息。重置开发环境也解决了我的问题。值得注意的是,在更改了订阅中专门引用的记录的属性类型之后发生了这种情况。我保留了属性名称,但更改了其类型。