命令通过NSTask失败,但通过system()运行

时间:2017-10-26 09:08:02

标签: objective-c nstask

我正在尝试安装软件。我尝试运行一个调用

的脚本
installer -pkg /path/to/software.pkg -target /

当我尝试通过Objective-c代码调用脚本时,如

NSTask *task;
task = [[NSTask alloc] init];
[task setLaunchPath:@"/path/to/script"];
[task launch]

当我尝试使用system()命令(如

)执行相同操作时,安装失败
NSString* run_Command = @"/path/to/script"
system([run_Command UTF8String])

应用程序安装完成后,在检查install.log后查看第一个失败的原因,我找到了这一行

  

./ postinstall:LSOpenURLsWithRole()失败,文件/Applications/Software.app错误-10810

     

PackageKit:安装失败:错误域= PKInstallErrorDomain代码= 112"从软件包“software.pkg”运行脚本时发生错误

我是以错误的方式使用NSTask还是更改任何设置或环境变量使NSTask有效?

当我查看LSOpenURLsWithRole()失败并出现错误-10810时,我只能发现这是一个权限错误问题,-chmod会解决问题。

0 个答案:

没有答案