CloudKit 订阅内部服务器错误

Posted

技术标签:

【中文标题】CloudKit 订阅内部服务器错误【英文标题】:CloudKit subscription internal server error 【发布时间】:2016-08-27 23:59:28 【问题描述】:

我正在尝试订阅 iCloud 更改,但我不断收到 internal sever error。从 iCloud 保存和提取数据有效,但我无法获取或保存订阅。

有人知道可能是什么问题吗?

【问题讨论】:

【参考方案1】:

我发现了问题。当涉及到错误时,CloudKit 的文档记录非常差。看起来您在尝试使用尚不存在的记录类型订阅记录更改时收到内部服务器错误。很奇怪,希望它对未来的人有所帮助!

【讨论】:

【参考方案2】:

我还注意到,一旦您遇到错误,随后对 CloudKit 的调用似乎会静默失败。也许它是正常的 ios 行为,如果它被设置,我需要重置错误代码。也许其他人可以发表评论。

【讨论】:

【参考方案3】:

在添加订阅 ID 之前,订阅工作正常。然后我开始收到“内部服务器错误”。我正在使用该功能:

let subscription = CKQuerySubscription(recordType: kActionFigureSpecificsRecord, 
   predicate: predicate, 
   subscriptionID: subscriptionId, 
   options: [.firesOnRecordCreation, .firesOnRecordUpdate, .firesOnRecordDeletion])

订阅 ID 订阅的唯一名称。这个字符串在指定的数据库中必须是唯一的,不能为nil。

阅读文档后,我意识到订阅 ID 必须是唯一的,尽管文档并没有特别清楚地说明相对于什么是唯一的。我相信唯一标准是关于其他数据库 ID.names,例如其他 recordID.recordName。我的 subscriptionID 字符串与订阅对相关记录起作用的表的 recordID.recordName 具有相同的值。当我将 _Subscription 附加到订阅 ID 字符串(即名称)时,订阅注册良好。

【讨论】:

以上是关于CloudKit 订阅内部服务器错误的主要内容,如果未能解决你的问题,请参考以下文章

GraphQL 通过公共网关服务订阅内部服务

通过公共网关服务对内部服务进行GraphQL订阅

取消订阅服务内部的 Observables?

CloudKit“订阅重复”错误 - 获取 SubscriptionId

Django Ajax 表单工作但抛出 500(内部服务器错误)

CloudKit 订阅错误:apsd[81] <警告>:静默推送:拒绝应用程序不可用