从模拟器查询公共数据库时出现 Cloudkit 错误

Posted

技术标签:

【中文标题】从模拟器查询公共数据库时出现 Cloudkit 错误【英文标题】:Cloudkit error when querying public database from simulator 【发布时间】:2014-10-24 16:05:26 【问题描述】:

我正在开发一个应用程序,我最近决定使用 CloudKit,现在我需要实现后端功能。简而言之,这个应用程序将使用一个集合视图来显示从 CK 数据库中检索到的图像。到目前为止,我只是将一些图像转储到我桌面上的一个文件夹中,并从那里检索/解析图像以呈现集合视图。然后我使用 CK 仪表板创建了一些记录并编写了一个初始化方法来尝试检索它们。我遇到了各种 CKErrors,例如网络故障、没有收到服务器响应的错误完成、无法发送有效签名等。我立即认为问题出在我的代码上,因为这是我第一次尝试使用 CloudKit。但是,在发布到 SO 之前,我在我的设备上运行了最新的代码并且它有效!我得到了一个成功的响应,其中包含我期望的结果数组中的记录数。

所以现在我知道在获取 CKRecords 方面需要帮助,就像我最初想的那样。但是如何用模拟器解决这个问题呢?我看到了其他一些关于确保您在模拟器上登录 iCloud 的帖子。我相信我是,但不知道如何检查才能确定。另外,我正在运行 Yosemite 和 Xcode 6.1。

感谢任何帮助!

【问题讨论】:

【参考方案1】:

在模拟器上转到设置应用程序。您可以使用菜单硬件、主页然后打开设置应用程序,选择 iCloud 并确保您已登录。

【讨论】:

谢谢!甚至没有想到这一点。我确实进入了模拟器上的设置并登录。同意条款后,它给出了一个错误,说这个设备不受支持。我点击了解更多并通过模拟器在 safari 中登录 icloud。看起来它希望我像最近在我的实际手机上那样确认身份,但屏幕不会让我看到整个页面。捏似乎也不起作用。你也遇到过这种情况吗? 为我工作——但我有一个后续问题,我的用户是否必须登录 iCloud 才能访问“公共”数据库中的数据?为什么这能解决问题? 是的,当您想连接到 CloudKit 时,用户必须登录 iCloud。 CloudKit 建立在 iCloud 之上。使用 iCloud 凭据处理身份验证。 @AO:***.com/questions/35321975/… 中的评论解释说,在开发中访问公共数据库需要登录,但在生产中不需要。【参考方案2】:

要在 iPhone 模拟器上的 iCloud 上使用您的 Apple ID,请确保关闭双向身份验证。然后它应该在模拟器上工作。

【讨论】:

这对我来说适用于 CloudKit 开发环境,但不适用于生产环境,我仍然收到<CKError 0x79f38700: "Internal Error" (1/1000); "Received a didCompleteWithError without receiving a response from the server"> @Marcus ios 9 中的相同问题 - 我想它在模拟器中不起作用。

以上是关于从模拟器查询公共数据库时出现 Cloudkit 错误的主要内容,如果未能解决你的问题,请参考以下文章

为啥我不能从 Xcode 或 CloudKit Dashboard 查询 CloudKit?

在 Google Apps 脚本中使用 CloudKit Web 服务 API 查询 CloudKit 公共数据库时的 AUTHENTICATION_FAILED

CloudKit ___recordID 未标记为可查询

修改 CKRecords 时出现 CloudKit 错误:“Zone Busy”

Cloudkit 公共数据库错误:“不允许写入操作”

CloudKit 无法从公共容器中获取数据。错误 1/4000