我正在开发OS X桌面应用程序。我想将辅助工具与它捆绑在一起。我正在考虑使用SMJobSubmit
启动具有提升权限的帮助程序。(该工具基本上执行sudo
调用。
如何将控制台输出从工具发送回我的主应用程序?
我知道NSTask
我可以使用NSPipe
来重定向控制台输出。但是,由于我认为我不能使用具有提升权限的NSTask
,因此我改用SMJobSubmit
。
(是的,我已经处理了授权部分。
,据我所知,您应该使用XPC连接与您的帮助程序进行通信。不要使用 SMJobSubmit(因为它无论如何都已弃用),而是使用 SMJobBless 将您的帮助程序工具安装为以提升的权限运行的 LaunchD 作业。使用 Mac OS X 应用程序中的 XPC 连接与其通信,以调用执行逻辑的函数调用、捕获输出并回复主应用程序。如果您愿意继续这个想法,Apple的以下示例代码将指导您完成。
https://developer.apple.com/library/mac/samplecode/EvenBetterAuthorizationSample/Listings/Read_Me_About_EvenBetterAuthorizationSample_txt.html