CloudKit 推送通知订阅无效

CloudKit push notification subscription not working

我正在尝试使用 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)")
})

但我没有一个名为 "fieldID" 的字段,在我的整个项目中也没有任何类型的引用。我也不知道25是从哪里来的。如果我更改记录类型 and/or NSPredicate.

,它仍然会发生

我也试过设置这个但是什么都没有

notificationInfo.shouldSendContentAvailable = true

这曾经对我有用,但现在我不能再让它工作了。好像我的数据库在某处损坏了。我尝试删除记录类型并重新创建但没有成功。

通过重置开发环境修复了它。希望同样的事情不会发生在产品上。

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