繁体   English   中英

沙盒和NSTask

[英]Sandbox and NSTask

我正在尝试沙箱我的应用程序,然后提交到Mac App商店,我需要打开一个dmg文件。 我尝试了以下,但我不知道它是否应该与Apple Sandbox一起使用。

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.

关于NSTask和Sandboxing的官方消息是“一些可执行文件可能有用”。 对我而言,这意味着“不要指望它”。 虽然这个可执行文件似乎确实显示了帮助菜单,但我确实看到Console.app中的沙盒错误会让我警惕。 截图

我同意CodaFi的这一点,你绝对不应该依赖于这一点来表达你的喜好。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM