我目前遇到CloudKit公共数据库的问题。
有时我在修改记录时收到错误: 权限失败“(10/2007);服务器消息=”不允许写入操作“; 错误代码为10 permissionFailure
如果我的记录修改次数很少,我几乎从不会收到错误,但只要我有更多修改(每小时3000+)错误就会变得过于频繁,所有请求的20%以上会导致此错误。 这导致我的事实是,我的代码必须正常,因为错误只会随着CloudKit活动的增加而发生。
当然我(以及该应用的所有用户)都已登录iCloud并激活了iCloud Drive。 WRITE权限也为所有人激活。
此外,请求率远低于每秒40个请求的限制(当许多用户处于活动状态时,最大值为每秒约3个请求)。
有没有人有想法?
答案 0 :(得分:2)
相同的问题;不知道是什么原因,但是发生在从一个iCloud帐户切换到另一个iCloud帐户的测试场景中。也许某些CloudKit状态被以前的帐户锁定在令牌上。
通过再次退出iCloud并再次登录来解决。我将向用户提供“如果此问题仍然存在,请退出...登录...”的反馈。我希望这会非常罕见。
答案 1 :(得分:1)
我出现此问题的原因:从一个iCloud帐户切换到另一个帐户未正确清除本地缓存(包括Core Data中的元数据),导致新帐户偶尔尝试更新属于前一个的云记录用户。
针对这种情况的解决方案取决于应用程序。就我而言,需要使用干净的平板开关(确认后清除所有数据以切换帐户)。其他应用程序可能需要将数据克隆到新创建的云记录中(即具有正确的创建者/所有者元数据)。