2012-02-02 11 views
6

Próbuję przenieść moją aplikację do piaskownicy przed jej przesłaniem do sklepu Mac App Store i muszę otworzyć plik dmg. Próbowałem następujące, ale nie wiem, czy ma to działać z Apple Sandbox.Sandbox i NSTask

NSTask *task = [[NSTask alloc] init]; 
[task setLaunchPath: @"/usr/bin/hdiutil"]; 
[task setArguments: 
[NSArray arrayWithObjects: @"attach", [NSString stringWithFormat:@"%@/myfile.dmg", documentsDirectory], nil]]; 
[task launch]; 
[task waitUntilExit]; 
if (0 != [task terminationStatus]) 
    NSLog(@"Mount failed."); 
[task release]; 

Gdybym wklej pełną ścieżkę do terminala Work It, jeśli biegnę z aplikacji pojawia się następujący błąd:

diskimages-helper[11437:303] ERROR: couldn't connect to framework. 
diskimages-helper[11437:303] DIHelper: setupConnectionToFrameworkWithUUID: failed 
hdiutil: attach failed - No child processes 
Mount failed. 

dzięki za pomoc! S.

+0

Nie można zamontować piaskownicy DMG, jest to niebezpieczne. – CodaFi

+0

Mam dokładnie ten sam problem. Zastanawiasz się, czy @ user375584 to naprawił. Dzięki – Josh

Odpowiedz

0

Oficjalne słowo na NSTask i Sandboxing to "niektóre pliki wykonywalne mogą działać". Dla mnie oznacza to "nie licz na to". Chociaż ten plik wykonywalny poprawnie pokazuje menu pomocy, widzę błędy piaskownicy w Console.app, które sprawiałyby, żebym był ostrożny. Screenshot

Zgodziłbym się z CodaFi na ten, na który na pewno nie należy polegać, aby działać w taki sposób, w jaki chcesz.

Powiązane problemy