运行相同XPC服务的多个实例(NSXPCConnection)

ind*_*gie 13 cocoa xpc objective-c nsxpcconnection

是否可以使用Foundation.framework(NSXPCConnection等)中的XPC API运行同一XPC服务的多个实例?这些文档没有提供太多关于此事的见解.

编辑:做了一个快速测试,似乎只有一个服务实例正在运行,即使我创建了两个XPC连接.有没有办法让它运行另一个实例?

tro*_*foe 8

有点晚了,但是在xpcservice.plist 联机帮助页中提供了对此问题的明确答案:

ServiceType(默认值:应用程序)

XPC服务的类型指定如何实例化服务.价值观是:

•应用程序:每个应用程序都有一个唯一的此服务实例.

•用户:为每个用户创建了一个服务流程实例.

•系统:整个系统有一个服务流程实例.系统XPC服务仅限于驻留在系统框架中,并且必须由root拥有.

结论:在大多数情况下,只有XPC服务的单个实例,并且只有在不同的应用程序可以连接到同一服务的情况下(当服务与应用程序捆绑在一起时甚至不可能),是否会有多个实例(一个-instance每次应用程序).


Vad*_*dim 1

我相信 XPC 服务是为每个多个连接一个实例而设计的。也许,使用一个正在运行的可执行文件来管理命名管道更方便。因此,很可能不可能同时创建多个实例。