首页 > 解决方案 > iOS 13 如何将 UIDocumentPickerViewController 与 App Group 一起使用?

问题描述

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

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

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

@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+”。

我是否缺少从该容器读取的权限,或者还有其他我错过的东西?谢谢!

标签: iosswiftios-app-groupuidocumentpickervc

解决方案


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


推荐阅读