在禁用 iCloud 驱动器的情况下运行 CloudKit 应用程序

Posted

技术标签:

【中文标题】在禁用 iCloud 驱动器的情况下运行 CloudKit 应用程序【英文标题】:Running CloudKit app with iCloud drive disabled 【发布时间】:2020-05-12 00:24:58 【问题描述】:

我有两个应用程序访问 iCloud。第一个是一个基于文档的应用程序,通过 UIDocument/NSDocument 类使用 iCloud 文件夹,没有 CloudKit。相反,第二个应用程序使用 CloudKit 通过 cloudkit 数据库而不是 iCloud 文件夹访问数据。

当我禁用 iCloud 驱动器时,第一个应用程序从列表中消失,但第二个应用程序仍然存在,这表明仍然可以访问 iCloud。

但是,当 iCloud 驱动器被禁用时,CKContainer.accountStatus 会返回“noAccount”,即使我已登录。当我忽略它并运行查询时,它不会返回任何记录。

iCloud 驱动器占用大量设备存储空间,因此一些用户可能会选择禁用它。出于这个原因,我更喜欢访问 iCloud 避免使用 iCloud 驱动器。有什么办法吗?

顺便说一句,iCloud documentation 强烈区分 CloudKit 和 iCloud Drive,这可能被解释为 iCloud Drive 的存在对于 iCloud 数据库访问不是必需的另一个证据。

【问题讨论】:

【参考方案1】:

你的发现是正确的。 需要 iCloud Drive 访问权限才能让应用使用 CloudKit。没有办法解决它(我知道)。

我过去曾就此与 Apple 工程师谈过,他们确认 iCloud Drive 是必要的。

【讨论】:

以上是关于在禁用 iCloud 驱动器的情况下运行 CloudKit 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

如何在没有 UIDocumentPickerViewController 的情况下访问所有 iCloud 驱动器文件(应用程序容器外)?

移至... > iCloud > 便笺选项已禁用

iCloud 文档选择器:应用文件夹在导入时被禁用

iCloud Core 数据同步设置

在应用程序运行时启用/禁用 Core Data 的 iCloud 同步

iOS 8 - 禁用 iCloud 照片共享活动