5
在Mac OS X(LoginItem)助手应用程序我有一个应用程序Main.app和应用Helper.app的Main.app/Library/LoginItems文件夹内。 Main.app可以由用户启动,然后用户可以将Helper.app设置为登录项目。 (使用SMLoginItemSetEnabled()),这可以很好地工作。当用户将Helper.app设置为登录项时,它也会启动。启动主应用程序
但是,也应该可以启动Helper.app而不将其设置为登录项目。我试着
[[NSWorkspace sharedWorkspace] launchApplication: newPath];
这给lsboxd做到这一点:不使工艺推出...错误,并与
[NSTask launchedTaskWithLaunchPath:newPath arguments: [NSArray array]];
至极给人否认禁止-sandbox- reinit错误。 (?大概是因为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];
我怎么能解决这个问题? :)
谢谢,
http://stackoverflow.com/questions/12971549/mac-os-sandbox-launching-main-application-from-helper - 它可以* *是一个签约的问题是会消失,一旦应用程序在应用程序商店 – Petesh 2013-03-12 17:11:26
1Password(使用1Password Helper进程)似乎可以执行此操作,并且它们已被沙箱化。我真的很想知道他们是如何实现的。 – 2013-09-22 18:19:27
我也在搜索这个,我只是按照你描述的方式来尝试它(除了我对硬件代码进行了硬编码,我真的不明白你为什么要这么做),它马上就能正常工作。我不知道你做错了什么(或者如果我做错了什么,这使它对我有用)。 – Sitses 2013-10-10 23:22:34