0

我有一个 MAC OSX 可可应用程序,我使用 NSAppleScript 以管理员权限运行一些脚本。该应用程序在手动启动或从任何其他脚本启动时运行良好。

但是当我尝试从 package maker 启动应用程序时,NSAppleScript 没有启动预期的脚本。

我制作了一个飞行后脚本来从 package maker 启动应用程序。

飞行后:

#!/bin/sh open pathOFApp

NSAppleScript 用法:

NSDictionary *error = [NSDictionary new];


NSAppleScript *appleScript = [[NSAppleScript new] initWithSource:@"do shell script \"pathOFScript \" with administrator privileges"];

if ([appleScript executeAndReturnError:&error]) {
          NSLog(@"-----success --------");

}

else{
    NSLog(@"-------Failure-----");

}

请帮助解决这个问题。

4

2 回答 2

0

我不知道 applescript/PackageMaker 的答案,但是您是否尝试过使用 unix 安全工具来启动您的可执行文件?我认为它从 10.5 开始可用。您也可以将它和您的可执行文件组合在一个语句中。

/usr/bin/security execute-with-privileges /path/to/executable
于 2012-12-13T13:43:07.580 回答
0

得到了这个的解决方案。由于 postflight 脚本是在 packageMaker 的 root 权限下启动的,因此它正在使用 NSAppleScript 创建一些权限问题。在 postflight 中以“sudo open MyApp”启动应用程序将解决该问题。

于 2012-12-18T10:11:16.083 回答