在我的应用程序中,我需要提升操作。为此,我找到了苹果SMJobBless机制。我编写了一个简单的帮助工具并通过SMJobBless
安装它。到目前为止这个工作。但是我现在还不明白:安装后如何启动Helper工具?
答案 0 :(得分:1)
通过阅读我为此记录的几乎所有内容,我现在使用XPC Conenction来激活帮助工具,然后在使用SMBlessJob
安装后通过launchd按需启动。为此,您需要通过助手工具的plist
创建MachService:
<key>MachServices</key>
<dict>
<key>com.my.program.Helper</key>
<true/>
</dict>
(这需要在助手的launchd.plist中完成,而不是在info.plist中完成。)
在帮助工具中,您必须创建Mach服务:
@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