存储提供商:从测试版a4开始无法列出导出/移动模式的文档选择器



升级到iOS8 beta 4后,当我想预设UIDocumentPickerViewController选择iCloud等文档选择器时,它总是显示"No locations available"并要求我启用document &iCloud Drive.

导入和打开仍然正常。我可以在菜单中看到所有的文档选择器,包括iCloud和我自己的选择器。我很确定我已经启用了iCloud Drive,并允许所有应用程序使用Document &常规> iCloud设置

奇怪的是,这个问题不会发生在模拟器上,而只发生在设备上。在beta4之前,我从未在模拟器和设备上看到过这个。

我已经在主机应用程序和我的文档选择器/存储提供商应用程序上检查了iCloud的代码标志,但它没有任何帮助。它不会抛出任何错误或警告消息。关于这件事我没有进一步的线索。

我使用NewBox作为主机应用程序,它是由Apple WWDC2014: https://developer.apple.com/wwdc/resources/sample-code/提供的

几天前我也在苹果开发者论坛上发布了这个问题,但是没有得到回复。有人也有同样的问题吗?非常感谢。

快照:https://i.stack.imgur.com/jOFya.png

是的,我也注意到同样的行为,并找到了一个修复。

对于NewBox应用程序,问题似乎与特定文件的共享权限有关,即应用程序包中的TestUIDocument_0.txt。

Jul 31 09:54:36 iPad kernel[0] <Notice>: Sandbox: NewBox(158) deny file-issue-extension /private/var/mobile/Containers/Bundle/Application/<GUID>/NewBox.app/TestUIDocument_0.txt
Jul 31 09:54:36 iPad kernel[0] <Notice>: Sandbox: com.apple.UIKit.(161) deny file-read-metadata /private/var/mobile/Containers/Bundle/Application/<GUID>/NewBox.app/TestUIDocument_0.txt

我通过将文件复制到文档目录内并设置self来修复这个问题。

不知道这是一个功能还是一个bug——对于move选项,我可以看到应用包中的文件不能被移动,所以禁止从应用包中移动是有意义的。

但是,据我所知,导出只是一个复制操作,所以不知道为什么在应用程序包中不允许这样做,但是从文档目录

最新更新