Я пытаюсь создать приложение с помощью службы XPC «A», которая, в свою очередь, пытается связаться с сервисом XPC «B». Однако он не работает.Создание NSXPCConnection из службы XPC
Если я копирую обе службы XPC в Contents/XPCServices
в главном приложении, то invalidationHandler
из NSXPCConnection
в A вызывается немедленно, а B не появляется вообще.
Если скопировать вложенную службу XPC к Contents/XPCServices/A.xpc/Contents/XPCServices
, то она начинается 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
libswiftCore.dylib
существует в Contents/Frameworks
папке приложения, A и B.
(Другие предложения, которые я нашел для ошибки Library not loaded: @rpath/libswiftCore.dylib
, не помогли: изменение идентификаторов подписи кода, установка Runpath Search Paths
.)
Что я делаю неправильно?
Я знаю, что могу инициализировать подключение к B из основного приложения, а затем передать его как anonymousListener
в A, но это звучит уродливо.