Objective c 应用程序、辅助工具和通信

Objective c 应用程序、辅助工具和通信,objective-c,xcode,macos,cocoa,Objective C,Xcode,Macos,Cocoa,我正在开发一个OSX桌面应用程序。我想用它捆绑一个助手工具。我正在考虑使用SMJobSubmit启动一个具有提升权限的助手程序。(该工具基本上执行sudo调用。) 如何将工具的控制台输出发送回主应用程序 我知道使用NSTask我可以使用NSPipe重定向控制台输出。但是,由于我认为我不能以提升的权限使用NSTask,因此我改用SMJobSubmit (是的,我已经处理了授权部分。)我认为,据我所知,您应该使用XPC连接与帮助程序进行通信。不要使用SMJobSubmit(因为它已被弃用),而是使用

我正在开发一个OSX桌面应用程序。我想用它捆绑一个助手工具。我正在考虑使用
SMJobSubmit
启动一个具有提升权限的助手程序。(该工具基本上执行
sudo
调用。)

如何将工具的控制台输出发送回主应用程序

我知道使用
NSTask
我可以使用
NSPipe
重定向控制台输出。但是,由于我认为我不能以提升的权限使用
NSTask
,因此我改用
SMJobSubmit


(是的,我已经处理了授权部分。)

我认为,据我所知,您应该使用XPC连接与帮助程序进行通信。不要使用SMJobSubmit(因为它已被弃用),而是使用SMJobBless将助手工具安装为以提升权限运行的启动作业。使用Mac OS X应用程序的XPC连接与之通信,以调用执行逻辑的函数调用,捕获输出并回复到主应用程序。如果您愿意继续这个想法,下面的示例代码将引导您完成


是的。我应该说明的,我的错。这个问题已经问了将近3年了。所以OP不太可能尝试你的建议。即使如此,正确的回答方法是在这里显示代码和解释。如果该链接失效,那么它对未来的SO用户将毫无用处。请参阅,以获取有关改进未来答案的帮助。