2012-06-26 12 views
5

Próbując uczynić moja aplikacja współpracuje z piaskownicy I utknąć w tym problemu:Piaskownica, przedmioty login i uruchomić aplikację

muszę dodać swoją aplikację, aby zalogować się przedmioty więc już po kroki:

  • Tworzenie HelperApp.app (z is agent = YES), który przy otwartym Exec ten kod:

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

    Ta aplikacja jest piaskownica.

  • dodałem kopiowania fazę budowania mojego MyNewApp.app wiązki z podścieżki Contents/Library/LoginItems czenia wrapper

    i oczywiście również MyNewApp.app jest piaskownicy

  • W MyNewApp.app I zarejestrowany pod numerem SMLoginItemSetEnabled identyfikator pakietu dla HelperApp.app

Teraz wszystko działa poprawnie, ale ... kiedy MyNewApp.app próbuje uruchomić MyNewApp.app pojawia się błąd:

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

Ale gdy próbuję użyć HelperApp.app uruchomienie nie piaskownica (np Steam.app) aplikacja działa jak urok!

Czy istnieje inny sposób uruchomienia aplikacji? prawdopodobnie NSWorkSpace działa z funkcjami niedozwolonymi w kontekście piaskownicy. Co sugerujesz?

Odpowiedz

4

Możesz chcieć rzucić okiem na mój tutorial na how to get launch at login working in the sandbox.

+0

dobry samouczek! Ale nie mogę zrozumieć, dlaczego to działa, jeśli utworzę obszar roboczy z 2 projektami i nie zadziała, jeśli użyję 2 różnych projektów i skopiuję aplikację pomocniczą przez pakiety kopii. – MatterGoal

+0

Dobre pytanie. Muszę przyznać, że nie mam odpowiedzi pod ręką, znalazłem rozwiązanie robocze metodą prób i błędów. – Tim

+3

Proszę dodać podstawy do swojej odpowiedzi. Odpowiedź, która jest właśnie taka, staje się bezużyteczna, gdy samouczek przechodzi w tryb offline. – dandan78

Powiązane problemy