Aim
无需用户直接选择文件即可获得对应用程序沙箱环境之外的文件的读取访问权限。
这个想法是,用户选择一个 fcpxml 文档(通过 NSOpenPanel),然后对其进行解析并收集所有文件路径字符串。然后,我从文件路径创建 URL 对象,并稍后读取这些 URL 处的文件。
Problem:
启用应用程序沙箱后,我无法访问(读取)使用 URL 方法 init(fileurlwithpath) 创建的文件 URL。
权利“com.apple.security.files.user-selected.read-write”似乎只允许我访问用户选择的 XML 文件,而不是 fcpxml 文档中引用的文件。
谁能推荐一种方法来做到这一点?
Cheers!
Adam
您没有指定有关您正在收集的路径的详细信息。它们是相对于 XML 文档还是总是引用某个文件夹中的文件?
如果保证您收集的路径始终指向公共系统文件夹(例如“电影”或“音乐”),您可以添加权利 https://developer.apple.com/library/content/documentation/Miscellaneous/Reference/EntitlementKeyReference/Chapters/EnablingAppSandbox.html#//apple_ref/doc/uid/TP40011195-CH4-SW5这允许您获得对这些文件夹的读/写访问权限。
如果文件分散在整个文件系统中,您可以提示用户通过以下方式选择一个公共根文件夹NSOpenPanel
并存储一个应用程序范围的书签 https://developer.apple.com/library/content/documentation/Security/Conceptual/AppSandboxDesignGuide/AppSandboxInDepth/AppSandboxInDepth.html#//apple_ref/doc/uid/TP40011183-CH3-SW16在应用程序会话中保持对所选文件夹的访问。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)