用户登录但禁用iCloud Drive时,CloudKit公共容器访问

时间:2016-11-01 17:07:11

标签: ios icloud cloudkit

我有一个使用CloudKit作为后端的应用程序,当用户未登录时,或者用户已登录且启用了iCloud Drive时,它可以正常获取数据。但是,如果用户已登录 并且 iCloud Drive已停用,则会在CKQuery上收到错误消息返回的结果为空。错误是:

  

“未经过身份验证”(9/1002); “帐户无权访问CloudKit帐户”

这种行为对我来说似乎很奇怪,因为用户可能会被注销并访问数据。是否可以在禁用iCloud Drive的情况下获取用户公共容器数据?

注意:这是必要的,因为我认识的很多人都安装了公司MDM配置文件,限制了iCloud Drive的访问权限,从而终止了我的应用程序的后端。

1 个答案:

答案 0 :(得分:0)

我也注意到了这一点。我在ios9 xcode 7下发现没有登录iCloud的用户可以读但不能写。

  

对于正在运行的CloudKit应用程序,始终是容器的公共数据库   即使用户未登录其iCloud帐户,也是可读的   在设备上。将记录保存到公共数据库并访问   私有数据库要求用户登录

https://developer.apple.com/library/prerelease/content/documentation/General/Conceptual/iCloudDesignGuide/DesigningforCloudKit/DesigningforCloudKit.html

自ios10和xcode 8以来的所有测试都显示情况已经不再如此,如果您没有登录iCloud,则无法读取或写入。我无法找到任何证明这一点的文档,但是在ios9的设备上运行我的应用程序并且在ios10上运行它不会。