0

NSAppleScript を使用して管理者権限でスクリプトを実行する MAC OSX cocoa アプリケーションがあります。このアプリケーションは、手動または他のスクリプトから起動すると正常に動作します。

しかし、パッケージ メーカーからアプリケーションを起動しようとすると、NSAppleScript は目的のスクリプトを起動しません。

パッケージ メーカーからアプリケーションを起動するポストフライト スクリプトを作成しました。

飛行後:

#!/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から利用可能になっていると思います。おそらく、これと実行可能ファイルを1つのステートメントで組み合わせることができます。

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

このための解決策を得ました。postflight スクリプトは packageMaker によってルート権限で起動されるため、 NSAppleScript で権限の問題が発生していました。postflight で「sudo open MyApp」としてアプリケーションを起動すると、問題が解決します。

于 2012-12-18T10:11:16.083 に答える