3

我创建了一个助手应用程序,它监视 iTunes 并启动/终止主应用程序。

发射工作完美。唯一的问题是,由于沙盒,我不允许终止主应用程序。我得到这 3 个日志:

12/23/12 8:45:37.522 PM appleeventsd[70]: Sandboxed application with pid 8293 attempted to lookup App:"Significator 2"/8877/0x0:0x150150 ???? sess=100011 but was denied due to sandboxing. (handleMessage()/appleEventsD.cp #2007) com.apple.coreservices.appleevents.peer.0x7fd9c2401f00.xpcq


12/23/12 8:45:37.000 PM kernel[0]: Sandbox: sandboxd(8888) deny mach-lookup com.apple.coresymbolicationd


12/23/12 8:45:37.873 PM sandboxd[8888]: ([8293]) SignificatorHelp(8293) deny appleevent-send ch.ilijatovilo.significator-2

我试过在帮助应用程序中像这样终止它:

NSRunningApplication *app = [[NSRunningApplication runningApplicationsWithBundleIdentifier:[self mainApplicationBundle].bundleIdentifier] objectAtIndex:0];
[app terminate];

当然,我可以在主应用程序中添加另一个观察者,但我想避免这种情况。

4

3 回答 3

3

明白了,我不得不添加一个临时权利例外:

<key>com.apple.security.temporary-exception.apple-events</key>
<array>
    <string>mainAppBundleIdentifier</string>
</array>
于 2012-12-24T08:46:01.223 回答
1

如果您将应用程序放在应用程序组中,您可以向主应用程序发送信号以自行终止。

于 2012-12-23T20:41:54.293 回答
0

10.8 中 IPC 的推荐方法是使用 NSXPCConnection。

请参阅使用 NSXPCConnection 进行沙盒处理中的代码

于 2012-12-25T07:25:12.483 回答