您可以在不同应用程序之间共享 CloudKit 上的数据吗

Posted

技术标签:

【中文标题】您可以在不同应用程序之间共享 CloudKit 上的数据吗【英文标题】:Can you share data on CloudKit between different apps 【发布时间】:2015-11-02 13:35:31 【问题描述】:

我在应用商店中有我的应用的免费和付费版本。我正在更新应用程序以使用 CloudKit 共享一些公共数据。我希望免费和付费应用程序共享相同的数据。

首先,两个应用程序是否可以使用 CloudKit 共享相同的数据?

如果是这样,我怎样才能让它工作?我尝试在两个目标的功能中启用 CloudKit,并在两个应用程序中选择相同的容器。选择了“使用默认容器”的主应用程序工作正常,但是我选择了“指定自定义容器”并从第一个目标中选择了自定义容器的另一个应用程序在我尝试下载任何内容时收到错误消息.

【问题讨论】:

【参考方案1】:

是的,多个应用程序可以使用相同的 CloudKit 数据。当您获得 CKContainer 时,我假设您对这两个应用程序都使用了类似以下的内容?

let container = CKContainer.defaultContainer()

这适用于主应用程序(具有与 cloudkit 标识符匹配的包标识符的应用程序)。其他应用程序需要像这样初始化容器:

let container = CKContainer(identifier: "iCloud.com.example.appname")

【讨论】:

谢谢。我通过在两个目标中明确声明标识符来完成这项工作。 是否需要在功能窗格中启用应用组? 否,应用组用于在应用之间共享文件。您需要在每个应用的功能窗格中启用 iCloud 容器。 是否可以为公共容器使用任何标识符?我有三个应用,App1 和 App2 应该共享一个容器,App1、2 和 3 应该共享另一个容器。

以上是关于您可以在不同应用程序之间共享 CloudKit 上的数据吗的主要内容,如果未能解决你的问题,请参考以下文章

CloudKit 在用户之间共享私有容器

CloudKit - 通过 URL 在用户之间共享文件

CloudKit 共享工作流程结束于:要打开它,您需要最新版本的“app_name”

您可以在多个应用程序之间使用 NSPersistentCloudKitContainer 共享数据吗?

Cloudkit 为每个用户提供不同的记录类型?

Cloudkit 与组合