在禁用 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 驱动器文件(应用程序容器外)?