19得票1回答
如何从XPC助手应用程序向主应用程序发送消息?

我已成功创建了XPC服务并通过从主应用程序发送消息与XPC服务通信。但我想知道的是,是否可以从XPC服务发起与主应用程序的通信。 Apple文档表明XPC是双向的。如果有人能给出一个例子指引我方向,那将不胜感激。 请注意: 我想从主应用程序启动XPC。 从主应用程序与XPC进行通信。 当...

15得票5回答
运行多个相同的XPC服务实例(NSXPCConnection)

使用Foundation.framework中的XPC API(例如NSXPCConnection等),是否可以运行多个相同的XPC服务实例?关于这个问题,文档没有提供太多深入的见解。 编辑:进行了一个快速测试,即使我创建了两个XPC连接,似乎只有一个服务实例在运行。是否有任何方法可以让它运...

12得票3回答
XPC未正确注册类以进行集合。

我正在使用XPC在10.8的一个应用程序中。它具有标准设置,已定义出口接口和远程接口的协议。我的问题出现在出口接口的一个方法上。 我有一个模型类,我们简称为Foo。该类符合NSSecureCoding,实现了+supportsSecureCoding,并使用安全编码方法正确地编码/解码内部属...

11得票1回答
如何正确地自行终止MacOS XPC服务?

我已经成功地按照守护进程和服务指南-创建XPC服务教程,以及SandboxedFetch示例代码,建立了一个使用新的NSXPCConnection类的客户端/服务端设置。 但是,我仍然不清楚如何在服务应用程序完成其工作后正确地自我终止。我知道在许多情况下,服务应该保持活动状态,但是在我考虑的...

10得票1回答
NSXPCConnection通过代理传递对象

守护进程和服务编程指南中提到,可以通过打开的XPC连接返回代理对象,即使作为回复块参数。 通过代理传递对象 大多数情况下,将对象复制并发送到连接的另一侧是有意义的。然而,并非总是如此。特别是: 如果您需要在客户端应用程序和帮助程序之间共享数据的单个实例,则必须通过代理传递对象。 如果对象...

8得票1回答
launchd杀死进程时,XPC中断处理程序会被调用吗?

NSXPCConnection的interruptionHandler块的文档说明: 如果远程进程退出或崩溃,则调用中断处理程序。 然而,Daemons and Services Programming Guide指出: XPC服务由launchd管理,它会按需启动它们,在它们崩溃...

7得票1回答
macOS 上沙盒化 Swift 应用程序的应用间通信

我正在使用Swift构建一个沙盒化的macOS应用程序,其中包含一个子应用程序。 我想要实现的功能是: 父级应用可以启动多个子应用程序 父级应用程序向每个子应用程序发送不同内容以显示 父级应用程序和子应用程序都有自己的用户界面。 我一直在考虑的实现方式是: 分布式通知 带有用户信...