我已经完全按照 Apple 提供的 Sandboxed Helper App 示例进行了操作,并且一切似乎都运行良好。我能够成功创建一个NSXPCConnection
对象并取回我的远程对象(通过remoteObjectProxyWithErrorHandler
)。
但是,当我调用代理对象上的方法(在协议定义中定义)时,我得到了这个错误:
Failed to connect to launch agent: Error Domain=NSCocoaErrorDomain Code=4099 "Couldn’t communicate with a helper application.
基本上无论我做什么,我都无法与我的助手应用程序进行通信。我没有做任何花哨的事情,只是试图简单地调用帮助应用程序到 NSLog() 的东西。但它不起作用。奇怪的是,我也没有看到内部的任何输出:
- (BOOL)listener:(NSXPCListener *)listener shouldAcceptNewConnection:(NSXPCConnection *)newConnection
我可能做错了什么?
更新:显然,如果我在我的主应用程序上取消选中“启用应用程序沙盒”,它就可以工作!所以启用沙盒有问题,之后它不想与我的助手应用程序通信。我需要更多权利吗?我在xcode下都试过了!