出于某种原因,当我尝试通过 NSTask 运行任务时,我收到错误消息:“启动路径不可访问”。
我的应用程序以 root 身份运行。如果我在终端中输入完全相同的命令,它运行良好,所以我有点困惑。
我的应用程序将一个名为 relaunch 的工具复制到NSTemporaryDirectory()
. 如果我尝试从这里运行它,我会得到“无法访问启动路径”。奇怪的是,如果我手动将工具复制到我的桌面,然后在 NSTask 中硬编码路径,它将正确执行。我不知道为什么。
有谁知道为什么会这样?
注意:仅供参考,试图让 Sparkle 从 github 工作。
这是代码:
@try{
[NSTask launchedTaskWithLaunchPath:relaunchPath arguments:[NSArray arrayWithObjects:pathToRelaunch, [NSString stringWithFormat:@"%d", [[NSProcessInfo processInfo] processIdentifier]], nil]];
}
在哪里
relaunchPath = @"/var/folders/zz/zzzivhrRnAmviuee+++++++++++/-Tmp-/relaunch";