0

XPC 服务不是作为单独的目标,而是作为在应用程序中实现侦听器委托的内置类。我在网上看到的所有示例都有单独的目标,它们制作 xpc 服务工具并将其复制到应用程序资源文件夹以支持传入连接。有没有办法像我想要的那样做?

4

1 回答 1

0

不,没有.. 很抱歉直言破坏了你的周末。

XPC 作为服务运行,即

YouApp.app
   Contents
   XPCServices/
          SomeService.xpc

不要让“xpc”扩展名欺骗您,用外行的话来说,它只是一个“应用程序”。

当“YouApp.app”启动时,launchd(制作你的 mac tic 的老爹)会收到通知并开始调查。

launchd 对它们如此挑剔的原因(libxpc)是因为它们在低级别运行并且可能有害,但是......因为它们在允许级别运行,它们非常活泼并且有效地完成工作。

初学者入门的一个很好的例子是:

https://developer.apple.com/library/mac/samplecode/SandboxingAndNSXPCConnection/SandboxingAndNSXPCConnection.zip

基本上,有 1 个应用程序和 2 个 XPC 服务。

流程如下:

1)应用程序启动 2)launchd(除其他外,授权 XPC 服务运行)3)应用程序要求一项服务从互联网上下载某些内容,您可以在 URL 中输入 4)该服务下载它,将其保存在一个地方所有服务(和应用程序)也可以访问,即应用程序组。5)然后应用程序要求其他服务“压缩”它。

就是这样。

一开始确实需要一段时间才能解决,最令人沮丧的是代码签名。

只是一个预警。如果你想让它运行得很好,你可能会从终端结束编码,而不是让 XCode 它。

另一件需要注意的是“计划”。确保您正确设置了 XPC 调试设置,否则它看起来就像什么都没有发生

最后,Console 是你的朋友 :D 在调试 XPX 时保持打开状态。

于 2015-04-11T17:48:26.987 回答