iOS xCode 13 - 应用程序无法通过"Open in..."共享选项访问下载的文件



实现"Open in. "功能通过文件共享选项,应用程序无法访问下载的文件"文件提供商存储",FileManager.default.fileExists(atPath: url.path)返回false虽然文件存在,同时在系统控制台上出现类似

的日志
Sandbox: FileAccessIssueA(11544) deny(2) file-test-existence

可能相关,也可能不相关。此外,应用程序成功地打开文件直接从AirDrop或如果文件被移动到应用程序文件夹。

要复制,请参阅样例项目(使用*.txt文件由应用程序打开)

如果这是正常行为,请给出建议,如果是,请直接查看相应的文档。如果不是,请告知是否有可能修复。

您正在使用选项Supports opening documents in place在信息。应用程序列表

当你使用这个选项时,你必须显式地请求使用安全作用域从url访问文件,所以将访问文件的代码更改为类似于:

let isSecuredURL = url.startAccessingSecurityScopedResource() == true
let result = FileManager.default.fileExists(atPath: url.path)
NSLog("File %@ %@", url.path, result ? "exists" : "not exists")
if (isSecuredURL) {
url.stopAccessingSecurityScopedResource()
}

将解决这个问题。

最新更新