iOS 13 如何将 UIDocumentPickerViewController 与 App Group 一起使用?

Posted

技术标签:

【中文标题】iOS 13 如何将 UIDocumentPickerViewController 与 App Group 一起使用?【英文标题】:iOS 13 How to use UIDocumentPickerViewController with App Group? 【发布时间】:2019-10-26 17:34:44 【问题描述】:

我已经在我的应用中实现了一个 AppGroup,以准备与另一个应用共享数据。我已成功将文件从默认应用文档目录移至该应用组。

FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: "group.com.xxx.mydata")! as NSURL

现在我想使用 UIDocumentPickerViewController 从该容器中的文件中进行选择。在 ios 13 中,我应该能够设置文档选择器从哪个目录开始。我的文档选择器如下所示:

@IBAction func fileAction(_ sender: UIButton)

    // open a document picker, select a file
    let importFileMenu = UIDocumentPickerViewController(documentTypes: ["public.data"], 
            in: UIDocumentPickerMode.import)
    importFileMenu.delegate = self
    if #available(iOS 13.0, *) 
        print("File iOS 13+")
        importFileMenu.directoryURL = FileManager.default.containerURL(
            forSecurityApplicationGroupIdentifier: "group.com.xxx.mydata")!
     else 
        // Fallback on earlier versions
        print("File iOS <=12")
    
    importFileMenu.modalPresentationStyle = .formSheet

    self.present(importFileMenu, animated: true, completion: nil)

当我运行该应用程序时,它的行为与 iOS13 之前一样,在默认应用程序文档目录中打开,并且应用程序组未显示为可供选择的可能性。打印语句显示“文件 iOS 13+”。

我是否缺少从该容器中读取的权限,或者我还缺少其他什么? 谢谢!

【问题讨论】:

约翰,你有没有找到解决办法?我看到了同样的问题,我能找到的关于它的唯一帖子是你的,没有回复。 :( 【参考方案1】:

不,抱歉,无法完成。 Apple 表示从 AppGroup 中选择不是 UIDocumentPickerViewController 应该做的。我为此花费了我的“Apple Developer Tech Support”用途之一,这就是他们的答案。我暂时放弃了它,并朝着不同的方向前进。您应该能够在 AppGroup 中构建您自己的文件列表并选择它们,而不是使用 UIDocumentPickerViewController。

【讨论】:

感谢您的回复,我什至认为这不是我想听到的!

以上是关于iOS 13 如何将 UIDocumentPickerViewController 与 App Group 一起使用?的主要内容,如果未能解决你的问题,请参考以下文章

如何将我的应用程序从 IOS 13 迁移到 IOS 14?

如何使用 SwiftUI 将应用程序采用到 iOS 13 暗模式?

如何将图像文件夹保存到iOS应用程序[重复]

我应该如何确定 UIKit 将打开哪个场景,以便我可以在正确的窗口中设置我的 UI? (iOS 13+)

如何使用 iOS 14+ 的 ScrollViewReader 和 iOS 13 的部署目标

如何在 JavaScript 上检测 iOS 13?