3

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

4

1 回答 1

1

对于所有遇到同样问题的人xpc_connection_create_mach_service: XPC 可以通过很多已启动的东西工作;当我们在 xCode 中调试应用程序时,它会调解应用程序和启动连接,但如果没有 xCode,我们需要自己做。

为了让它活着,应该使用launch plist文件通过launchd来启动它。这里有一个这样的 plist 示例,但这还不够。诀窍是MachServices关键,它看起来像:

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

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

于 2019-11-28T16:15:40.323 回答