Macos 是否可以授予沙盒应用程序对从AppleScript发送的文件的访问权限?

Macos 是否可以授予沙盒应用程序对从AppleScript发送的文件的访问权限?,macos,scripting,applescript,appstore-sandbox,Macos,Scripting,Applescript,Appstore Sandbox,我正在向沙盒Mac App Store应用程序添加AppleScript支持。我希望用户能够使用我编写的命令,通过脚本向应用程序添加文件,如下所示: 将文件添加到路径“/path/to/some/file/on.disk” 我将命令的参数指定为typefile,因此它以NSURL的形式进入我的应用程序,并且我可以在调试器中看到文件URL的路径(po URL.path) 这是sdef文件中命令的定义: 尝试为此文件创建安全范围的书签时,出现错误: 无法打开()项 我需要能够在随后的应用程序启

我正在向沙盒Mac App Store应用程序添加AppleScript支持。我希望用户能够使用我编写的命令,通过脚本向应用程序添加文件,如下所示:

将文件添加到路径“/path/to/some/file/on.disk”
我将命令的参数指定为type
file
,因此它以
NSURL
的形式进入我的应用程序,并且我可以在调试器中看到文件URL的路径(
po URL.path

这是
sdef
文件中命令的定义:


尝试为此文件创建安全范围的书签时,出现错误:

无法打开()项

我需要能够在随后的应用程序启动时读取该文件,这就是我创建书签的原因。此书签创建代码:

NSData*fileBookmark=[url bookmarkDataWithOptions:NSURLBookmarkCreationWithSecurityScope
包括资源价值市场:无
relativeToURL:nil
错误:&错误];
我试着用
[url start(stop)AccessingSecurityScopedResource]
来围绕代码,但没有什么不同

更新

我还确定应用程序无法读取文件的内容,或者无法将其复制到应用程序的容器中。脚本应用程序除了其路径之外,没有访问该文件的权限

更新2


我还尝试将脚本放在
~/Application Scripts/bundleid
NSApplicationScriptsDirectory
)目录中,并从Cocoa代码中的
NSUserScriptTask
运行它,结果相同(URL处的文件仍然不可读)。

,结果发现问题与我的应用程序无关,而是与我用来调用它的AppleScript有关。您需要发送文件句柄或别名,如下所示:

在路径posix文件/path/to/some/file/on.disk上添加文件
将路径“path:to:some:file:on.disk”处的文件添加为别名
当您只给出一个路径(POSIX或其他)时,它仍然作为一个
NSURL
,因此我感到困惑,但没有在沙箱中打一个洞

这种行为并不明显,而且很难排除故障,所以我