CloudKit 使用的云账号

Posted

技术标签:

【中文标题】CloudKit 使用的云账号【英文标题】:Account of the cloud used by CloudKit 【发布时间】:2020-04-21 01:59:36 【问题描述】:

抱歉,这可能是一个愚蠢的问题。我希望我的应用程序使用 iCloud 来备份和同步用户的数据,假设 CloudKit 与用户的云一起使用。然而,情况可能并非如此。

我有两个云帐户:个人帐户和开发者帐户。我的 macOS 已登录到个人 iCloud 帐户,所以我希望我的 macOS 应用程序能够使用它。但是 CloudKit Dashboard 显示的是开发者帐户的云容器。

iCloud design guide 还说“CloudKit 提供了一种将数据作为记录存储在数据库中的方法,您的应用程序的用户可以共享”这意味着云数据代表所有用户的单个实例。

那么,CloudKit 使用哪一种云:用户的、开发者的,还是单独的(专为应用容器设计的)?如果它使用一个单独的云,它是否算作开发人员的存储?

【问题讨论】:

【参考方案1】:

您应用的 CloudKit 容器包含两个数据库;一个可供您应用的所有用户访问的公共数据库和一个仅供当前用户访问的私有数据库。

私人数据库中的个人记录可以通过CKShare与其他用户共享。

存储在公共数据库中的数据来自您应用的存储分配;免费获得的存储空间取决于应用安装的数量。

存储在私有数据库中的数据存储在用户的 iCloud 存储中,并计入他们的存储分配。

来自CloudKit Quick Start 文档

应用可以访问每个容器中的公共和私有数据库。 公共数据库用于存储在应用的所有实例之间共享的用户和应用数据。默认情况下,所有用户都可以读取公共数据库,但他们需要输入 iCloud 凭据才能写入公共数据库。您的应用程序的每个用户都有一个私有数据库,但该应用程序只能访问当前用户的私有数据库。用户必须输入 iCloud 凭据才能让应用读取和写入私有数据库。

信息也可在CloudKit Overview 页面上找到 - 检查底部的脚注;私人存储来自用户的免费 5GB 配额(他们可能会购买更多)。公共存储空间来自您应用的配额。

【讨论】:

我将其标记为答案。不过,我想参考 Apple 文档来确认这一点。 非常感谢。实际报价是:“iCloud 为用户提供 5 GB 的私人数据和文档免费存储空间,并可选择将其 iCloud 存储计划升级至 2 TB”

以上是关于CloudKit 使用的云账号的主要内容,如果未能解决你的问题,请参考以下文章

如何通过 npm 安装 CloudKit JS 库

是否可以使用 CloudKit 从 iCloud 驱动器获取数据

CloudKit:CKRecord 问题(或错误?)的 creatorUserRecordID

CloudKit:区域已被用户清除

无法初始化 CloudKit 架构,因为协调器中没有存储配置为使用 CloudKit

Cloudkit 与组合