2012-09-23 26 views
0

我正在開發OS X桌面應用程序。我想用它捆綁一個輔助工具。我正在考慮使用SMJobSubmit以提升的權限啓動助手程序。 (該工具基本上會撥打sudo。)應用程序,幫助程序工具通信

如何將控制檯輸出從工具發送回我的主應用程序?

我知道NSTask我可以用NSPipe重定向控制檯輸出。但是,因爲我不認爲我可以使用NSTask提升特權,所以我使用的是SMJobSubmit

(是的,我照顧的授權部分。)

+0

這是用於MacOS的,對嗎? –

+0

是的。我應該指出,我的不好。 – 425nesp

回答

1

我想,據我所知,你應該使用XPC連接你的助手程序進行通信。而不是使用SMJobSubmit(因爲它已被棄用),請使用SMJobBless將助手工具安裝爲以提升特權運行的LaunchD作業。使用Mac OS X應用程序中的XPC連接與其進行通信,以調用執行邏輯的函數調用,捕獲輸出並回復主應用程序。如果你願意繼續這個想法,下面的蘋果示例代碼將指導你完成。

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

+0

這個問題已接近3歲。所以OP不太可能嘗試你的建議。即便如此,回答這個問題的正確方法是在這裏顯示代碼和解釋。如果該鏈接死亡,那麼未來的SO用戶將毫無用處。請參閱[如何回答頁面](http://stackoverflow.com/help/how-to-answer),以獲取有關改進您未來答案的幫助。 – Madness