在此处查看我的问题和答案:App Sandbox:文档范围的书签未解析;不返回任何错误
我将集合范围的书签嵌入到我的 XML 文件中。
更新
鉴于您无法控制输入 XML 格式的规范,让您的应用程序访问 XML 中指定的文件的唯一方法是让用户选择该文件或NSOpenPanel
. 如果 XML 包含多个文件引用,您可以让用户授予对包含所有文件引用的目录的访问权限。
没有办法绕过请求许可,因为这会破坏沙盒的目的。如果您的应用程序可以绕过用户的直接许可,那么恶意软件也可以。但是,一旦获得访问权限,您就可以为每个文件创建一个安全范围的书签,这样您就无需多次请求用户许可。
更新 2
回答您评论中的问题,您可以通过以下方式使用户更轻松地进行对话:
[openPanel setMessage:@"Click 'OK' to allow access to files contained in the selected directory"];
[openPanel setDirectoryURL:[NSURL fileURLWithPath:pathFromTheXMLFile]];
这是关于NSSavePanel
(NSOpenPanel
继承自它的文档,上面的属性是在那里定义的)。