升级到 iOS8 beta 4 后,当我想预设 UIDocumentPickerViewController 来选择iCloud等文档选择器时,它总是显示" 没有位置可用"并要求我启用Document& iCloud Drive的数据。
导入和打开仍然可以正常工作。我可以在菜单中看到所有文件选择器包括iCloud和我自己的选择器。我很确定我已经启用了iCloud Drive并允许使用Document& amp;一般数据> iCloud设置。
奇怪的是,这个问题不会发生在模拟器上,而只会发生在设备上。在beta4之前,我从未在模拟器和设备上看到过这种情况。
我已在主机应用和我的文档选择器/存储提供商应用上检查了iCloud的代码符号,但它没有任何帮助。它不会抛出任何错误或警告消息。关于这个案子我没有进一步的线索。
我使用NewBox作为主机应用程序,由Apple WWDC2014提供:https://developer.apple.com/wwdc/resources/sample-code/
我几天前也在Apple开发论坛发布了此问题,但没有得到回复。谁也有同样的问题?非常感谢。
答案 0 :(得分:2)
是的,我也注意到了同样的行为,并找到了解决办法。
对于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.documentURL设置为该位置来解决问题。
不知道这是一个功能还是一个错误 - 对于移动选项,我可以看到应用程序包中的文件无法移动,因此禁止从应用程序包中移动是有意义的。
但是根据我的理解,导出只是一个复制操作,所以不知道为什么在应用程序包中不允许这样做,而是来自文档目录。