我有一个使用CloudKit作为后端的应用程序,当用户未登录时,或者用户已登录且启用了iCloud Drive时,它可以正常获取数据。但是,如果用户已登录 并且 iCloud Drive已停用,则会在CKQuery上收到错误消息返回的结果为空。错误是:
“未经过身份验证”(9/1002); “帐户无权访问CloudKit帐户”
这种行为对我来说似乎很奇怪,因为用户可能会被注销并访问数据。是否可以在禁用iCloud Drive的情况下获取用户公共容器数据?
注意:这是必要的,因为我认识的很多人都安装了公司MDM配置文件,限制了iCloud Drive的访问权限,从而终止了我的应用程序的后端。
答案 0 :(得分:0)
我也注意到了这一点。我在ios9 xcode 7下发现没有登录iCloud的用户可以读但不能写。
对于正在运行的CloudKit应用程序,始终是容器的公共数据库 即使用户未登录其iCloud帐户,也是可读的 在设备上。将记录保存到公共数据库并访问 私有数据库要求用户登录
自ios10和xcode 8以来的所有测试都显示情况已经不再如此,如果您没有登录iCloud,则无法读取或写入。我无法找到任何证明这一点的文档,但是在ios9的设备上运行我的应用程序并且在ios10上运行它不会。