Cloudkit 安全角色

Cloudkit Security Roles

我在 CloudKit 中看到的 Security Rolls 的唯一用途是授予另一个团队成员访问 cloudkit 仪表板的权限,以便修改仪表板中的表格?这是正确的,还是我遗漏了什么?

目前我是唯一可以登录仪表板的人,我无法添加其他团队成员。我认为这是因为我在 Apple 注册为单一开发人员?我希望使用它在 public 数据库上设置某种类型的安全性,但似乎我无法使用安全角色来做到这一点。

我正在尝试为 public 数据库设置三种不同类型的用户:

我将在同一个容器中有 3 个应用程序 运行。

1.) 管理员 - 单独的应用程序

2.) 消费者 - 单独的应用程序

3.) 承包商 - 单独的应用程序

我找到了这个帖子:

How do I access security role in cloudkit

看来我必须在每个应用程序中添加安全性以仅访问该类型用户允许的数据?

我设置了多个应用程序共享同一个容器,您不仅需要在 Xcode 本身进行配置,还需要在您编写的代码中进行配置。

let container = CKContainer(identifier: "iCloud.yourDB")
let publicDB = container.publicCloudDatabase

访问权限基于 iCloud 用户,而非应用程序。因此,如果您要在使用相同 iCloud ID 的设备上安装所有三个应用程序 运行,那么它们都可以使用默认权限访问相同的 public 和私有数据库。

您需要 "code" 在管理应用程序中 "create" & "write-to" 您的数据库的能力。大概 "write-to" 承包商应用程序中的数据库和 "read-from" 消费者应用程序中的数据库;示例场景。

但是,如果计划是让多个 iCloud 用户使用共享同一容器的不同应用程序,那么您的选择就比较有限。私有数据库就是私有的。所以不同的iCloud用户不能共享同一个私有数据库,不能更改权限期限,只能共享public数据库。

在public数据库中,默认权限将授予所有人读取权限,只允许验证[登录到 iCloud 帐户] 用户创建新记录的能力,link 表示已创建记录的用户创造了它们。

换句话说,如果经过身份验证的用户 [A] 在 public 数据库中创建了一条记录,用户 [B] 可以读取它,但没有写入权限来更新它;您 would/could 更改访问权限以授予他们这样做的权利,如果您有此要求,您将在仪表板上进行更改。

但请注意,据我所知,public 数据库上的配额并未linked 到 iCloud 帐户,而是linked 到应用程序。因此,如果您创建一个将大量数据转储到 public 数据库的应用程序; Apple 会向您发送账单 when/if 您的应用程序用户超出了每个应用程序每个用户允许的 public 数据库配额。 [是的,所以您的应用的用户越多,您获得的 public 数据库配额就越多,但是您 should/need 限制个人用户可以要求限制您对 iCloud 费用的责任的数量!]

我可能没有理解 Apple 关于它如何 works/is 将要在最后一段 users/apps 开具账单的描述,欢迎通过各种方式进行澄清。