我的应用程序运行启动守护程序,因此主应用程序可以与iTunes同步启动。 守护程序运行没有问题。
但是,当我在登录时禁用守护进程时,守护程序已经启动并继续打开主应用程序,直到用户重新启动计算机并且守护程序关闭。
如何终止守护程序进程?因为它是一个没有界面的流程,所以应用程序不是NSRunningApplication
。
值得一提的是,该应用程序必须使用沙盒。
答案 0 :(得分:0)
好的,通过从守护程序服务列表中删除帮助程序应用程序,应用程序会自动被杀死。
- (void)setLaunchHelperAtLogin:(BOOL)launchHelperAtLogin {
if (launchHelperAtLogin != self.launchHelperAtLogin) {
// Creating helper app complete URL
NSURL *bundleURL = [[NSBundle mainBundle] bundleURL];
NSURL *url = [bundleURL URLByAppendingPathComponent:kHelperPath];
// Registering helper app
OSStatus status = LSRegisterURL((__bridge CFURLRef)url, true);
if (status != noErr) {
NSError *error = [NSError errorWithDomain:NSOSStatusErrorDomain code:status userInfo:nil];
NSLog(@"%@", error);
}
// Setting login
if (!SMLoginItemSetEnabled((CFStringRef)kHelperBundleIdentifier, launchHelperAtLogin)) {
NSLog(@"SMLoginItemSetEnabled failed!");
}
}
}