我正试图创建一个带有xpc服务“a”的应用程序,而xpc服务“a”又试图与xpc服务“b”通信。但是,它不起作用。
如果我将两个xpc服务都复制到主应用程序中的Contents/XPCServices,则会立即调用a中的invalidationHandler,而b似乎根本不会启动。
如果我将嵌套的xpc服务复制到NSXPCConnection,则它会启动b,但它会立即崩溃:

Dyld Error Message:
  Library not loaded: @rpath/libswiftCore.dylib
  Referenced from: App.app/Contents/XPCServices/A.xpc/Contents/XPCServices/B.xpc/Contents/MacOS/B
  Reason: image not found

Contents/XPCServices/A.xpc/Contents/XPCServices存在于app、a和b的libswiftCore.dylib文件夹中。
(我为Contents/Frameworks错误找到的其他建议没有帮助:更改代码签名标识,设置Library not loaded: @rpath/libswiftCore.dylib
我做错什么了?
我知道我可以从主应用程序初始化到B的连接,然后将其作为Runpath Search Paths传递给A,但这听起来很难看。

最佳答案

在b的@loader_path/../../../../Frameworks中添加Runpath Search Paths后,它现在起作用。

关于swift - 从XPC服务创建NSXPCConnection,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32284843/

10-09 02:25