2017-12-27 512 views
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权限。是否有可以为内置项目设置的设置,该设置会自动设置,以便在启动时请求根密码?

回答

0

似乎在工作,我没有得到错误,但仍然喜欢一些关于如何设置应用程序以管理员身份运行的指针。

相关问题