我正在尝试使用XPC服务“A”创建一个应用程序,该服务又尝试与XPC服务“B”进行通信。但是,它无法正常工作。
如果我将两个XPC服务复制到主应用中的Contents/XPCServices
,则会立即调用A中invalidationHandler
的{{1}},而B似乎根本不会启动。
如果我将嵌套的XPC服务复制到NSXPCConnection
,那么它会启动B,但它会立即崩溃:
Contents/XPCServices/A.xpc/Contents/XPCServices
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
存在于应用的libswiftCore.dylib
文件夹中,A和B.
(我发现的Contents/Frameworks
错误的其他建议没有帮助:更改代码签名身份,设置Library not loaded: @rpath/libswiftCore.dylib
。)
我做错了什么?
我知道我可以从主应用初始化与B的连接,然后将其作为Runpath Search Paths
传递给A,但这听起来很难看。
答案 0 :(得分:2)
将@loader_path/../../../../Frameworks
添加到B的Runpath Search Paths
后,现在可以使用了。