我正在开发一款使用App Scripting的Mac应用程序。这是Sandboxed,因此需要适当的权利才能获得将AppleScript事件发送到其他应用程序的权限。我已经使这个适用于应用程序(如Mail和spotify),它们指定了访问组标识符,如下所示:
<access-group identifier="com.apple.mail.compose" access="rw"/>
<access-group identifier="com.spotify.playback"/>
然而,Apple的其他一些应用程序(如Xcode)指定了这样的标识符:
<access-group identifier="*"/>
我试图像这样配置我的权利文件:
<key>com.apple.security.scripting-targets</key>
<dict>
<key>com.apple.dt.Xcode</key>
<array>
<string>*</string>
</array>
</dict>
,但在执行此操作时它不起作用,我在控制台中收到此错误消息:
AppleEvents/sandbox: Returning errAEPrivilegeError/-10004 and denying dispatch of event xcod/buld from process '-------'/0x0-0x1a05a04, pid=82514, because it is not entitled to send an AppleEvent to this process.
有谁知道如何正确配置?
答案 0 :(得分:0)
其实我自己找到了答案。在sdef手册页中,它指出:
标识符“*”表示该元素可供任何应用程序使用, 没有明确的权利。
这意味着您不必在权利文件中添加标识符,它应该可以正常工作。我收到错误的原因是因为我意外地使用了那些未包含在那些特定访问组中的命令。