我正在开发 OS X 桌面应用程序。我想与它捆绑一个辅助工具。我正在考虑使用 SMJobSubmit
来启动具有提升权限的帮助程序。 (该工具基本上执行 sudo
调用。)
如何将控制台输出从工具发送回我的主应用程序?
我知道通过 NSTask
我可以使用 NSPipe
来重定向控制台输出。但是,由于我认为我无法以提升的权限使用 NSTask
,因此我改用 SMJobSubmit
。
(是的,我已经处理了授权部分。)
最佳答案
据我所知,我认为您应该使用 XPC 连接来与您的帮助程序进行通信。不要使用 SMJobSubmit(因为无论如何它已被弃用),而是使用 SMJobBless 将帮助器工具安装为以提升的权限运行的 LaunchD 作业。使用 Mac OS X 应用程序中的 XPC 连接与其进行通信,以调用执行逻辑的函数调用、捕获输出并回复主应用程序。如果您愿意继续这个想法,下面来自 Apple 的示例代码将指导您完成。
关于objective-c - 应用程序、辅助工具通讯,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12550730/