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