无法通过在我的应用程序中打开共享工作表从iOS Files应用程序打开文件:在提供的文件URL处不存在文件文件、应用程序、我的、不存在

2023-09-04 01:59:59 作者:你只是我的梦

我的iOS应用程序可以打开CSV文件,以便导入数据。我可以通过UIDocumentPickerViewController从应用程序中打开文件,选择文件应用程序中显示的文件,没有任何问题。然而,当首先在文件应用程序中查看文件,然后从那里打开我的应用程序(通过在共享表中打开)时,我的应用程序无法在传递给我的应用程序的URL处看到该文件。该文件似乎不存在。

我在我的AppDelegate中添加了以下调试代码:

func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey: Any] = [:]) -> Bool {
    print("Exists: (FileManager.default.fileExists(atPath: url.path)) ((url.path))")
    return true
}
怎么用C语言打开一个应用程序

当我在此应用程序的文件中打开文件时,会出现如下所示的日志行:

存在:FALSE(/private/var/mobile/Library/Mobile Documents/com~apple~CloudDocs/Reading List - Andrew’s iPhone - 2018-10-18 11-19.csv)

当我从其他应用程序(例如Dropbox或电子邮件)打开文件时,文件可以被处理,并记录以下内容:

存在:True(/private/var/mobile/Containers/Data/Application/F9110F90-7A91-4AB6-A92E-0ED933184EA4/Documents/Inbox/Reading List - Andrew’s iPhone - 2018-01-27 08-03.csv)

注意不同的路径(Documents/InboxMobile Documents/com~apple~CloudDocs)。是什么导致了这种情况?如何支持在我的应用程序中从Files应用程序打开文件?

我的应用支持的文档类型如下:

推荐答案

我通过调整应用程序的Info.plist中的某些设置修复了此问题。

我将UISupportsDocumentBrowser切换为false,并添加了LSSupportsOpeningDocumentsInPlace,也设置为false

在收到来自App Store Connect的电子邮件后,我认为这些设置(由我)设置不正确:

文档配置无效-基于文档的应用程序应支持文档浏览器(UISupportsDocumentBrowser=yes)或实现就地打开(LSSupportsOpeningDocumentsInPlace=yes/no)。有关详细信息,请访问https://developer.apple.com/document-based-apps/。