He hecho exactamente como el ejemplo de aplicación Sandboxed Helper proporcionado por Apple y todo parece funcionar correctamente. Puedo crear con éxito un objeto NSXPCConnection
y también recuperar mi objeto remoto (a través de remoteObjectProxyWithErrorHandler
).Aplicación Helper mac (elemento de inicio de sesión), no se puede comunicar con
Sin embargo cuando llamo a un método en el objeto proxy (definido en la definición del Protocolo), le regreso este error:
Failed to connect to launch agent: Error Domain=NSCocoaErrorDomain Code=4099 "Couldn’t communicate with a helper application.
Esencialmente no importa lo que hago, no soy capaz de comunicarse con mi aplicación de ayuda No estoy haciendo nada sofisticado, solo trato de hacer una simple llamada a la aplicación de ayuda para NSLog() algo. Pero no funciona. Curiosamente, tampoco veo ninguna salida desde adentro:
- (BOOL)listener:(NSXPCListener *)listener shouldAcceptNewConnection:(NSXPCConnection *)newConnection
¿Qué podría estar haciendo mal?
ACTUALIZACIÓN: Aparentemente, si desactivo 'Habilitar aplicación Sandboxing' en mi aplicación principal, ¡funciona! Por lo tanto, hay algo mal con la habilitación de sandboxing después de lo cual no quiere comunicarse con mi aplicación de ayuda. ¿Necesito más derechos? ¡Los he probado todos bajo xcode!
Si abre la consola, ¿obtiene una violación de búsqueda mach de espacio aislado? – Samir
No, pero encontré una solución, explicada a continuación – strange