Связь XPC между сервисом и клиентским приложением работает только при запуске из xcode
Связь XPC работает нормально, когда я запускаю цели из своего XCode. Но когда я вручную запускаю приложения-службы и клиентские приложения, дважды щелкнув их по значкам, появляется сообщение о недействительности соединения. Как они работают нормально внутри xcode, а не снаружи?,
0 ответов
Для всех, кто столкнулся с той же проблемой, используя xpc_connection_create_mach_service
: XPC работает через множество запускаемых вещей; когда мы отлаживаем приложение в xCode, оно является посредником между приложением и запуском соединения, но без xCode нам нужно сделать это самостоятельно.
Чтобы это работало, нужно запустить его через launchd, используя файл launch plist. Существует пример такого списка свойств здесь, но это не достаточно. Хитрость в том,MachServices
ключ, который выглядит так:
<key>MachServices</key>
<dict>
<key>com.server.bundle-id</key>
<true/>
</dict>
Таким образом мы создаем сервис mach, поэтому я предполагаю, что у нашего XPC-соединения может быть какой-то порт mach под ним.