ios - UIDocument、FileWrapper 和第三方文件提供商

标签 ios swift nsfilewrapper uidocumentbrowservc fileprovider-extension

我在应用程序中使用文档包(通过 FileWrapper API),并且使用 UIDocumentBrowserViewController 类进行文档管理。文档包基本上代表(文本)文件和文件夹的层次结构。当文档存储在设备或 iCloud 中时,一切正常。但当我尝试在远程位置创建文档时,情况就不同了,而对文档的访问是由第三方文件提供商(例如 Google Drive、Microsoft One Drive 或 Dropbox)提供的。每次我尝试在任何这些位置创建文档时,我都会调用 importHandler(fileURL, .move):

  1. Dropbox:失败并显示一般错误消息:“操作无法 完成。 (DBFileProviderErrorDomain 错误 1。)";

  2. Google 云端硬盘:失败并显示略有不同的消息:“ 操作无法完成。 (com.apple.DocumentManager 错误 1.)"

  3. MS OneDrive:似乎成功,但在尝试打开新的 创建文档后,应用程序将获得一个 OS_dispatch_data 对象 一个 FileWrapper 对象,这是它所期望的。

我不确定发生了什么事。我唯一能想到的是文档包仅在 Apple 文件系统上受支持。

非常感谢任何建议。 谢谢。

最佳答案

据我所知(并证实了您的怀疑),大多数非 iCloud 云存储提供商的文件提供商扩展(通过 UIDocumentBrowserViewController 访问)不能很好地处理包。例如,UIManagedDocument 对象以包格式存储其数据存储,而我通常尝试使用 UIDocumentBrowserViewController 创建/保存/移动它们到非 iCloud 云存储的经验以失败告终。请参阅我向 Apple 提交的错误报告的 OpenRadar 副本,http://openradar.appspot.com/6905951 .

关于ios - UIDocument、FileWrapper 和第三方文件提供商,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53618201/

相关文章:

ios - 如何将多个 iOS 应用程序打包销售

ios - 将未知格式(任何格式)的字符串转换为日期

ios - Swift:第一次单击 UITextField 时立即消失

swift - 如何在 Swift 中为 Mac OS X 开发一个简单的输入法?

具有核心数据、照片和 iCloud 的 iOS 应用程序

使用 iCloud 存储的 iOS 应用程序正在向我的文档添加 .icloud 文件扩展名

objective-c - NSFileWrapper,延迟加载和保存

ios - 从 NSURLResponse 中提取数据

ios - 如何在实际对象初始化之前请求权限?

iOS - 更改 UIStackView 中文本字段的高度