我如何知道应用程序使用的Apple事件访问组?

时间:2014-02-07 19:43:21

标签: macos cocoa appstore-sandbox appleevents

Apples的Sandobox应该使用Apple事件访问组,允许应用程序相互通信,如WWDC视频“Session 206 Secure Automation Techniques In OS X”中所述

但是,未提及的内容(我在Xcode 5.x文档中找不到它)是如何可以找出为特定应用程序定义的Apple事件访问组。

例如,如果我希望我的应用程序与Pages(或Photoshop或Firefox等)通信,我如何找到有关其Apple事件访问组的文档?它们在哪里定义,我可以用什么工具来找到它们?

1 个答案:

答案 0 :(得分:10)

来自沙盒应用的Apple Events通常使用Apple Script完成。这里需要有权利文件:

https://developer.apple.com/library/ios/Documentation/Miscellaneous/Reference/EntitlementKeyReference/Chapters/EnablingAppSandbox.html#//apple_ref/doc/uid/TP40011195-CH4-SW25

要查找哪个应用提供访问组有点麻烦,并且可用的数量不多。使用终端和sdef查找。这将为您提供一个XML,您可以阅读并查找access-group

例如在控制台中:

sdef /Applications/Mail.app > mail.sdef.xml
open mail.sdef.xml 

然后你会看到

<access-group identifier="com.apple.mail.compose" access="rw"/>