2012-06-26 9 views
5

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 destino wrapper

    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?

Respuesta

4

Es posible que desee echar un vistazo a mi tutorial en how to get launch at login working in the sandbox.

+0

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

+0

Buena pregunta. Debo admitir que no tengo una respuesta a mano, encontré la solución de trabajo por prueba y error. – Tim

+3

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

Cuestiones relacionadas