0

私のアプリは起動デーモンを実行するので、メインアプリは iTunes と同期して起動できます。デーモンは問題なく実行されます。

ただし、ログイン時にデーモンの起動を無効にすると、デーモンは既に起動されており、ユーザーがコンピューターを再起動してデーモンがシャットダウンされるまでメインアプリを開き続けます。

デーモン プロセスを終了するにはどうすればよいですか? インターフェイスのないプロセスなので、アプリは noNSRunningApplicationです。


編集

言うまでもなく、アプリケーションはサンドボックス化する必要があります。

4

1 に答える 1

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!");
        }
    }
}
于 2013-03-28T13:11:32.567 に答える