iOS:“文档存储”设置对我的应用程序实际上意味着什么?我该如何兑现它?

问题描述 投票:0回答:1

我有一个应用程序可以成功存储文档,以便它们显示在用户的 iCloud Drive 文件夹中并在设备之间同步。我可以在 iCloud Drive 下的“文件”应用程序中看到我的应用程序的文件夹。

如果我进入 iOS 设置应用程序并将应用程序的“文档存储”设置从“iCloud Drive”更改为“在我的 iPhone 上”,我希望我的应用程序开始使用文件中的“在我的 iPhone 上”位置应用程序代替。当我这样做时,我可以看到我的应用程序的新文件夹出现在“文件”应用程序的“在我的 iPhone 上”部分中,这似乎证实了我的假设。

我正在检查

ubiquityIdentityToken
url(forUbiquityContainerIdentifier:)
,它们不会改变:即使我的应用程序切换到“在我的 iPhone 上”,它们仍然返回 iCloud 目录的详细信息。因此,我的应用程序继续读取文件并将其写入 iCloud Drive 目录,而不是“On My iPhone”目录。

我不知道我应该如何尊重这个设置。

ubiquityIdentityToken
周围的文档建议它应该返回 nil,但这只是在用户退出 iCloud 时才适用,而不仅仅是更改我的应用程序的文档存储设置吗?

或者我完全误解了文档存储设置是什么?

页面的文档存储设置: Document Storage setting for Pages

ios swift icloud icloud-drive
1个回答
0
投票

经过更多研究,我想我明白了。

“文档存储”设置与普遍存在的容器无关。该设置仅针对在 Info.plist 中将

UISupportsDocumentBrowser
(支持文档浏览器)设置为 true 的应用程序显示。

据我所知,这还没有很好的记录。我根据 NSFileProviderManager.documentStorageURL理解 iOS:“文档存储”设置对应用程序意味着什么?.

将其拼凑在一起。

我一定是不小心添加了这个条目,认为它对我的应用程序是必要的,但我的应用程序不使用文档浏览器。当我在 iCloud Drive 中或在我的 iPhone 上为我的应用程序创建文件夹(具体取决于此设置)时,我感到很困惑,但因为我使用的是 FileManager 的无处不在的 API,所以它仅保存到 iCloud Drive。

用户有选择地为每个应用程序打开/关闭 iCloud 的正确方法是在“设置”应用程序中导航至 Apple ID → iCloud → 使用 ICLOUD 的应用程序:显示全部 → 并切换应用程序的开关。

© www.soinside.com 2019 - 2024. All rights reserved.