2012-06-26 7 views
5

Cercando di rendere la mia applicazione funziona con sandboxing mi si blocca in questo problema:sandboxing, elementi di login e lanciare App

ho bisogno di aggiungere la mia app per accedere elementi in modo Ho seguito questi passi:

  • Creazione di un HelperApp.app (con is agent = YES) che alla exec aperto questo codice:

    NSString * AppPath = @ "/ Applicazioni/MyNewApp.app"; [[NSWorkspace sharedWorkspace] launchApplication: appPath]; [NSApp terminate: nil];

    Questa app è in modalità sandbox.

  • ho aggiunto una fase di costruzione copia al mio fagotto MyNewApp.app con sottotracciato Contents/Library/LoginItems e la destinazione wrapper

    E ovviamente anche la MyNewApp.app è sandbox

  • In MyNewApp.app I registrato con SMLoginItemSetEnabled l'ID del gruppo per il HelperApp.app

Ora tutto funziona correttamente, ma ... quando MyNewApp.app cerca di lanciare MyNewApp.app ottengo un errore:

LSOpenFromURLSpec() returned -10827 for application /Applications/MyNewApp.app path (null). 

Ma se provo ad usare il HelperApp.app per lanciare un non in modalità sandbox (es App Steam.app) funziona come un fascino!

C'è un altro modo per avviare l'app? probabilmente NSWorkSpace funziona con funzioni non consentite nel contesto sandbox. Che cosa suggerisci?

risposta

4

Si consiglia di dare un'occhiata al mio tutorial su how to get launch at login working in the sandbox.

+0

buon tutorial! Ma non riesco a capire perché funzioni se creo uno spazio di lavoro con i 2 progetti e non funziona se uso 2 progetti diversi e copio l'app helper attraverso i pacchetti di copia. – MatterGoal

+0

Buona domanda. Devo ammettere che non ho una risposta a portata di mano, ho trovato la soluzione di lavoro per tentativi ed errori .. – Tim

+3

Per favore aggiungi le basi alla tua risposta. Una risposta di tipo link-only, che è ciò che è, diventa inutile quando il tutorial passa offline. – dandan78