服务和客户端应用程序之间的XPC通信仅在从xcode启动时才有效

时间:2013-11-09 19:13:25

标签: xcode xpc

当我从Xcode启动目标时,XPC通信正常工作。但是,当我通过双击图标手动启动服务和客户端应用程序时,连接失效消息显示出来。它们在xcode内部工作正常,而不是从外部工作吗?.Xcode在这里做了什么魔术来使通信工作

1 个答案:

答案 0 :(得分:0)

对于所有使用xpc_connection_create_mach_service遇到相同问题的人们:XPC通过大量已发布的产品工作;当我们使用xCode调试应用程序时,它会中介应用程序并启动连接,但是如果没有xCode,我们需要自己做。

要使它活跃起来,应该使用启动plist文件通过启动来启动它。 有这样的plist here的示例,但这还不够。 诀窍是MachServices键,它看起来像:

<key>MachServices</key>
<dict>
<key>com.server.bundle-id</key>
<true/>
</dict>

这是我们创建Mach服务的方式,所以我想我们的XPC连接下面可能有一些Mach端口。