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

时间:2018-03-23 21:18:22

标签: ios database icloud cloudkit public

我目前遇到CloudKit公共数据库的问题。

有时我在修改记录时收到错误: 权限失败“(10/2007);服务器消息=”不允许写入操作“; 错误代码为10 permissionFailure

如果我的记录修改次数很少,我几乎从不会收到错误,但只要我有更多修改(每小时3000+)错误就会变得过于频繁,所有请求的20%以上会导致此错误。 这导致我的事实是,我的代码必须正常,因为错误只会随着CloudKit活动的增加而发生。

当然我(以及该应用的所有用户)都已登录iCloud并激活了iCloud Drive。 WRITE权限也为所有人激活。

此外,请求率远低于每秒40个请求的限制(当许多用户处于活动状态时,最大值为每秒约3个请求)。

有没有人有想法?

2 个答案:

答案 0 :(得分:2)

相同的问题;不知道是什么原因,但是发生在从一个iCloud帐户切换到另一个iCloud帐户的测试场景中。也许某些CloudKit状态被以前的帐户锁定在令牌上。

通过再次退出iCloud并再次登录来解决。我将向用户提供“如果此问题仍然存在,请退出...登录...”的反馈。我希望这会非常罕见。

答案 1 :(得分:1)

我出现此问题的原因:从一个iCloud帐户切换到另一个帐户未正确清除本地缓存(包括Core Data中的元数据),导致新帐户偶尔尝试更新属于前一个的云记录用户。

针对这种情况的解决方案取决于应用程序。就我而言,需要使用干净的平板开关(确认后清除所有数据以切换帐户)。其他应用程序可能需要将数据克隆到新创建的云记录中(即具有正确的创建者/所有者元数据)。