У меня есть приложение Main.app и приложение Helper.app в папке Main.app/Library/LoginItems. Приложение Main.app может быть запущено пользователем, а затем пользователь может установить Helper.app в качестве элемента входа. (используя SMLoginItemSetEnabled()), это работает отлично. Когда пользователь устанавливает Helper.app в качестве элемента входа, он также запускается.
Однако также должна быть возможность запустить Helper.app, не устанавливая его в качестве элемента входа. Я пытался сделать это с
[[NSWorkspace sharedWorkspace] launchApplication: newPath];
который выдает ошибку lsboxd: Not Allowing Process to Launch..., и с
[NSTask launchedTaskWithLaunchPath:newPath arguments: [NSArray array]];
который выдает ошибку запретить повторную инициализацию песочницы. (предположительно потому, что Helper.app находится внутри Main.app?)
новый путь находится следующим образом:
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];
Как я могу это исправить? :)
Спасибо,