【问题标题】:Talking to launch services on OSX through XPC or MACH通过 XPC 或 MACH 在 OSX 上启动服务
【发布时间】:2012-08-29 15:53:25
【问题描述】:

我想知道第三方开发人员是否可以通过 XPC 或 Mach 与启动代理和守护程序进行交互。我的理解是第三方必须知道 XPC 的字典格式或访问 Mach 的 .defs 文件。这些是否可用于预安装的启动服务?如果没有,那么还有其他方式可以通过代码与服务交互吗?

【问题讨论】:

    标签: objective-c c macos mach xpc


    【解决方案1】:

    你的理解是正确的。对于 Mach,.defs 文件用作 Mach 接口生成器 (MIG) 的输入,它创建用于序列化 mach 消息中的参数、调用 mach_msg、等待回复和反序列化回复的 C 代码。 XPC 还在幕后使用 mach 消息,顺便说一句(尽管 Apple 真的没有告诉你)。

    Apple 不会为预安装的启动服务显示任何内容。他们确实提供了 launchd 本身的源代码(尽管由于未提供 libxpc.dylib,最新版本无法编译,这不足为奇)。

    可以做的是挂钩 mach_msg(或覆盖的 xpc_* 消息函数 - 这可能有点困难,因为大多数是异步的,并且实际消息是由 GCD 线程提供的)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-15
      • 1970-01-01
      • 2013-10-29
      • 2012-12-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多