Main.app/Library/LoginItems フォルダー内にアプリケーションMain.appとアプリケーションHelper.appがあります。Main.app はユーザーが起動でき、ユーザーは Helper.app をログイン項目として設定できます。(SMLoginItemSetEnabled() を使用)、これは完全に機能します。ユーザーが Helper.app をログイン項目として設定すると、それも起動されます。
ただし、ログイン項目として設定せずに Helper.app を起動することも可能です。私はこれをやろうとしました
[[NSWorkspace sharedWorkspace] launchApplication: newPath];
これにより、lsboxd: Not allowed process to launch...エラーが発生し、
[NSTask launchedTaskWithLaunchPath:newPath arguments: [NSArray array]];
これは、禁止されたサンドボックスの再初期化エラーを拒否します。(おそらく、Helper.app が Main.app内にあるためでしょうか?)
newPath は次のように見つかります。
NSMutableArray *pathComponents = [NSMutableArray arrayWithArray:[[[NSBundle mainBundle] bundlePath] pathComponents]];
[pathComponents addObject:@"Contents"];
[pathComponents addObject:@"Library"];
[pathComponents addObject:@"LoginItems"];
[pathComponents addObject:@"Helper.app"];
[pathComponents addObject:@"Contents"];
[pathComponents addObject:@"MacOS"];
[pathComponents addObject:@"Helper"];
NSString *newPath = [NSString pathWithComponents:pathComponents];
どうすればこれを修正できますか? :)
ありがとう、