0
我已經使用XCode 9.2編寫了一個macOS Cocoa應用程序。以root權限啓動/分配macOS應用程序
該應用程序的目的是作爲一組shell命令的包裝,以便用戶可以根據需要輕鬆運行命令。 shell腳本允許用戶控制另一方爲其編寫軟件的特定設備驅動程序。
我設法讓應用程序以root用戶身份調用shell命令。
但有一些子命令失敗。實際運行的命令是,我認爲這是第二屆「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
當我運行在終端中輸入相同的命令,他們的工作,無論是作爲獨立的命令或shell腳本。
作爲最後的手段,我跑使用
sudo ~/Library/Developer/Xcode/DerivedData/appname/Build/Products/Debug/appname.app/Contents/MacOS/appname
命令行應用程序而這個完美的作品。
因此,當我使用NSAppleScript框架運行時,它正確地提示我輸入了根密碼,但仍然有些問題會導致命令失敗。但是,當整個應用程序運行在sudo
一切正常。
所以解決方案似乎是設置應用程序需要Root權限。是否有可以爲內置項目設置的設置,該設置會自動設置,以便在啓動時請求根密碼?