Tratando de hacer mi aplicación trabaja con caja de arena se queda bloqueado en este problema:Sandboxing, elementos de inicio y poner en marcha la aplicación
tengo que añadir mi aplicación para iniciar sesión artículos así que he seguido estos pasos:
Creación de un HelperApp.app (con
is agent = YES
) que al ejecutivo abierta este código:NSString * appPath = @ "/ Aplicaciones/MyNewApp.app"; [[NSWorkspace sharedWorkspace] launchApplication: appPath]; [NSApp terminate: nil];
Esta aplicación tiene espacio aislado.
He añadido una fase de construcción copia a mi paquete MyNewApp.app con subtrazado
Contents/Library/LoginItems
y destinowrapper
Y, obviamente, también la MyNewApp.app es un recinto de seguridad
En MyNewApp.app I registrado con
SMLoginItemSetEnabled
el ID del paquete para el HelperApp.app
Ahora todo funciona correctamente, pero ... cuando MyNewApp.app intenta lanzar MyNewApp.app consigo un error:
LSOpenFromURLSpec() returned -10827 for application /Applications/MyNewApp.app path (null).
Pero si trato de utilizar el HelperApp.app para lanzar una no sandboxed (es decir, Aplicación Steam.app) funciona como un encanto!
¿Hay alguna otra forma de iniciar la aplicación? probablemente NSWorkSpace funciona con funciones no permitidas en el contexto de sandbox. ¿Que sugieres?
buen tutorial! Pero no puedo entender por qué funciona si creo un espacio de trabajo con los 2 proyectos y no funciona si uso 2 proyectos diferentes y copio la aplicación de ayuda a través de los paquetes de copia. – MatterGoal
Buena pregunta. Debo admitir que no tengo una respuesta a mano, encontré la solución de trabajo por prueba y error. – Tim
Agregue los conceptos básicos a su respuesta. Una respuesta de solo enlace, que es lo que es, se vuelve inútil cuando su tutorial se desconecta. – dandan78