Песочница и НСТаск - PullRequest
       15

Песочница и НСТаск

7 голосов
/ 03 февраля 2012

Я пытаюсь поместить свое приложение в песочницу перед отправкой в ​​магазин приложений Mac, и мне нужно открыть файл dmg. Я попробовал следующее, но я не знаю, должен ли он работать с песочницей Apple.

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];

Если я вставлю полный путь в терминал, он будет работать, если я запустюсь из приложения, я получу следующую ошибку:

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.

Спасибо за любую помощь! S.

1 Ответ

1 голос
/ 05 июля 2013

Официальное слово в NSTask и Sandboxing - «некоторые исполняемые файлы могут работать». Для меня это означает «не рассчитывай на это». Хотя этот исполняемый файл, похоже, правильно показывает меню справки, я вижу ошибки в песочнице в Console.app, которые могут меня насторожить. Screenshot

Я бы согласился с CodaFi на этот, что вы определенно не должны рассчитывать на это, чтобы действовать так, как вам хотелось бы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...