2017-08-09 8 views
1

我需要在我的應用程序中的某個時候提升操作。爲此我找到了蘋果SMJobBless機制。我寫了一個簡單的幫助工具,並通過SMJobBless進行安裝。這到目前爲止有效。但是現在我不明白:安裝後如何啓動該輔助工具?瞭解OSX中的特權幫助程序工具

+0

我到目前爲止發現的是這樣的:https://stackoverflow.com/questions/34939243/gain-administration-privileges-with-swift-for-一個mac應用程序它聲明你shuild請求launchd啓動助手工具,但不是如何... – Nidhoegger

回答

0

通過閱讀幾乎所有我發現的文檔記錄,我現在使用XPC Conenction激活幫助工具,然後在使用SMBlessJob安裝後,通過launchd按需啓動。要做到這一點,你需要通過你的助手工具的plist創建MachService:

<key>MachServices</key> 
<dict> 
    <key>com.my.program.Helper</key> 
    <true/> 
</dict> 

(這需要在你的助手,而不是的info.plist的launchd.plist做)。

在您的幫助工具,你就必須創建馬赫服務:

@property (atomic, strong, readwrite) NSXPCListener *listener; 

     self->_listener = [[NSXPCListener alloc] initWithMachServiceName:@"com.my.program.Helper"]; 
     self->_listener.delegate = self; 

之後,您可以連接使用XPC。如果你需要更多的信息,請參閱Apple的這個例子:https://developer.apple.com/library/content/samplecode/EvenBetterAuthorizationSample/Listings/Read_Me_About_EvenBetterAuthorizationSample_txt.html