2017-12-27 18 views
0

XCode 9.2を使用してmacOS Cocoaアプリケーションを作成しました。root権限を持つMacOSアプリケーションの開始/割り当て

このアプリの目的は、一連のシェルコマンドのラッパーとして、ユーザーが必要に応じて簡単にコマンドを実行できるようにすることです。シェルスクリプトを使用すると、ユーザーは、ソフトウェアが他の人によって書き込まれた特定のデバイスドライバを制御できます。

私はrootとしてシェルコマンドを呼び出すようにアプリケーションを管理することができました。

しかし、失敗するサブコマンドがいくつかあります。実際のコマンドは実行され、私はそれが失敗した第2回「stop -a」だと思う:

do shell script \" 
cd '/Library/Application Support/ABC' ; 
python '/Library/Application Support/ABC/abc.py' stop -d; 
python '/Library/Application Support/ABC/abc.py' stop -a; 
python '/Library/Application Support/ABC/abc.py' stop -g; 
python '/Library/Application Support/ABC/abc.py' stop -t;\" 
with administrator privileges 

私は、彼らが働くターミナルで同じコマンドを実行し

、いずれかの個別のコマンドとして、あるいはシェルスクリプトで。

は、最後の手段として、私は

sudo ~/Library/Developer/Xcode/DerivedData/appname/Build/Products/Debug/appname.app/Contents/MacOS/appname 

を使用してコマンドラインからアプリケーションを実行し、これは完璧に動作します。

NSAPleScriptフレームワークを使用して実行すると、ルートパスワードを正しく入力するように表示されますが、コマンドの失敗を引き起こす何らかの不具合があります。しかし、アプリ全体がsudoの下で実行されると、すべてが機能します。

解決策は、アプリにルート権限を要求するように設定されているようです。スタートアップ時にルートパスワードが要求されるように自動的に設定するビルドプロジェクトに設定できる設定はありますか?

答えて

0

私はエラーが表示されないようですが、adminとして実行するようにアプリを設定する方法については、まだいくつかの参考になります。

関連する問題