Mam aplikacji Main.app i aplikacji Helper.app w folderze Main.app/Library/LoginItems. Main.app może zostać uruchomiony przez użytkownika, a użytkownik może następnie ustawić Helper.app jako element logowania. (przy użyciu SMLoginItemSetEnabled()), działa to doskonale. Kiedy użytkownik ustawia Helper.app jako element logowania, jest również uruchamiany.Uruchomienie Mac OS X (LoginItem) APP pomocnika z głównej aplikacji
Należy jednak uruchomić program Helper.app bez ustawiania go jako elementu logowania. Próbowałem to zrobić z
[[NSWorkspace sharedWorkspace] launchApplication: newPath];
co daje lsboxd: nie pozwalając, aby uruchomić proces ... błąd iz
[NSTask launchedTaskWithLaunchPath:newPath arguments: [NSArray array]];
wich daje zaprzeczyć zabronione-sandbox- reinit Błąd. (? Przypuszczalnie dlatego, że Helper.app jest wewnątrz Main.app)
newpath znajduje się w następujący sposób:
NSMutableArray *pathComponents = [NSMutableArray arrayWithArray:[[[NSBundle mainBundle] bundlePath] pathComponents]];
[pathComponents addObject:@"Contents"];
[pathComponents addObject:@"Library"];
[pathComponents addObject:@"LoginItems"];
[pathComponents addObject:@"Helper.app"];
[pathComponents addObject:@"Contents"];
[pathComponents addObject:@"MacOS"];
[pathComponents addObject:@"Helper"];
NSString *newPath = [NSString pathWithComponents:pathComponents];
Jak mogę rozwiązać ten problem? :)
Dzięki
http://stackoverflow.com/questions/12971549/mac-os-sandbox-launching-main-application-from-helper - to * może * być problem podpisanie który odchodzi raz Aplikacja znajduje się w sklepie z aplikacjami – Petesh
1Password (z procesem 1Password Helper) wydaje się być w stanie to zrobić i są one piaskownicy. Naprawdę zastanawiam się, jak to osiągnąć. –
Szukałem tego również i po prostu wypróbowałem to tak, jak to opisałeś (z wyjątkiem tego, że na stałe utworzyłem ścieżkę, naprawdę nie rozumiem, dlaczego robisz to tak, jak robisz) i zadziałało to od razu. Nie wiem, co robisz źle (lub jeśli robię coś złego, co sprawia, że działa to dla mnie). – Sitses