MacOS 应用程序沙盒 - 从已解析的 xml 中读取对引用文件的访问权限

MacOS App Sandboxing - read access to referenced files from parsed xml

瞄准

无需用户直接选择文件即可获得对应用沙箱环境外文件的读取权限。

想法是用户选择一个 fcpxml 文档(通过 NSOpenPanel),然后解析该文档并收集所有文件路径字符串。然后,我从文件路径创建 URL 对象,并在稍后读取那些 URL 处的文件。

问题:

启用应用程序沙盒后,我无法访问(读取)我使用 URL 方法 init(fileurlwithpath) 创建的文件 URL。

权利 "com.apple.security.files.user-selected.read-write" 似乎只允许我访问用户选择的 XML 文件,而不是 fcpxml 文档中引用的文件。

谁能推荐一种方法来做到这一点?

干杯!

亚当

您没有指定有关您正在收集的路径的详细信息。它们是相对于 XML 文档还是总是指某个文件夹中的文件?
如果可以保证,您正在收集的路径始终指向一个公共系统文件夹(例如 "Movies" 或 "Music"),您可以 add an entitlement 让您获得 read/write访问这些文件夹。

如果文件分散在整个文件系统中,您可以提示您的用户通过 NSOpenPanel select 公共根文件夹并存储 app-scoped Bookmark 以保持对select跨应用会话编辑文件夹。