【问题标题】:Application, Helper Tool Communication应用程序、辅助工具通信
【发布时间】:2012-09-23 08:08:57
【问题描述】:

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

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

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

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

【问题讨论】:

  • 是的。我应该指定的,我的错。

标签: objective-c xcode macos cocoa


【解决方案1】:

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

https://developer.apple.com/library/mac/samplecode/EvenBetterAuthorizationSample/Listings/Read_Me_About_EvenBetterAuthorizationSample_txt.html

【讨论】:

  • 这个问题将近3年了。因此,OP 不太可能尝试您的建议。即便如此,回答这个问题的正确方法是在此处显示代码和解释。如果该链接失效,那么它对未来的 SO 用户将毫无用处。请参阅 How to answer page 以帮助您改进未来的答案。
猜你喜欢
  • 2016-05-18
  • 2015-09-19
  • 2011-08-22
  • 1970-01-01
  • 2011-02-12
  • 1970-01-01
  • 2010-09-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多