4

自 iOS 11 以来,我已经有了一个文档浏览器应用程序(使用 UIKit/UIDocumentBrowserViewController)。该应用程序(我们称之为“MyApp”)用于在 iCloud Drive(和/或设备上,取决于设置中的选择)中创建一个“MyApp”文件夹,文档将自动保存在该文件夹中。

将我的设备更新到 iOS 15 并重新编译后,没有对代码进行任何更改,该应用程序似乎不再识别 iCloud Drive 中自己的文件夹。每次从应用程序外部(文件、邮件等)打开/导入文件时,应用程序都会在 iCloud Drive 中创建一个的“MyApp”文件夹并将文档保存在那里。现有文件夹重命名为“MyApp 2”(如果我尝试导入另一个文档,则为“MyApp 3”、“MyApp 4”等)。

这似乎只发生在 iCloud Drive 中。如果我在设置中选择将文档保存在我的设备上,所有文档都会自动导入到“我的应用程序”文件夹中,就像 iOS 14 及更早版本中的情况一样。

我还尝试使用 Xcode 13 UIKit 基于文档的应用程序模板从头开始创建一个测试应用程序,并且行为似乎完全相同......所以看起来 UIDocumentBrowserViewController 中的一个错误是在 iOS 更新中引入的。

有没有人注意到同样的事情?有解决方案/解决方法吗?是否应该提交错误报告?

感谢您的帮助。

[编辑] 如果有人感兴趣,这是使用 Xcode 模板重现问题的最简单方法:

  • 在 Xcode 13.0 中创建一个新项目
  • 选择 iOS -> 文档应用程序
  • 选择 Interface: Storyboard 并创建项目(为简单起见,我们使用“MyApp”作为产品名称)
  • 在启用了 iCloud Drive 的运行 iOS 15.0 或 15.0.1 的设备上构建和安装 MyApp
  • 在 Settings -> MyApp 中保留 Document Storage(即 iCloud Drive)的默认设置
  • 创建一个包含任何内容的文本文件并将其保存为扩展名“exampletext”(即应用模板使用的导入类型标识符 - 我们称该文件为“test.exampletext”)
  • 使用 test.exampletext 作为附件将电子邮件发送到可从设备访问的收件箱
  • 在设备上打开 Mail,长按 test.exampletext 并分享到 MyApp
  • 如果 iCloud Drive 中存在“MyApp”文件夹,则将其重命名为“MyApp 2”;将创建一个新的“MyApp”文件夹,并将 test.exampletext 保存在新文件夹中
  • 再次从邮件中分享 test.exampletext 到 MyApp 将创建另一个“MyApp”文件夹并重命名前一个;可以通过这种方式创建任意数量的“MyApp n”文件夹,每个文件夹都包含一份文档副本
4

1 回答 1

1

这在 15.2 测试版中已修复。

于 2021-10-28T00:42:36.323 回答