我们正在使用一个小助手应用程序在登录后启动我们的主应用程序。但是我们无法启动我们的主应用程序,因为LSOpenFromURLSpec()返回错误代码-10827。
如果我们使用的话无关紧要:
[[NSWorkspace sharedWorkspace] launchApplication:@"/Applications/Appname.app"];
或:
[[NSWorkspace sharedWorkspace] launchApplication:@"Appname"];
每次都会返回错误。我们如何解决这个问题?
答案 0 :(得分:5)
根据LaunchServices标头,该错误意味着它无法在应用程序包中找到可执行文件:
kLSNoExecutableErr = -10827, /* The executable is missing*/
您在标题中提到OS X沙盒,所以我假设您使用沙盒应用程序遇到此问题。您可能无法使用应用的当前权利启动其他应用。一种简单的测试方法是编写一个只调用-launchApplication:
的无限制命令行工具。
答案 1 :(得分:1)
试试这个:
[[NSWorkspace sharedWorkspace] launchApplication:@"/Applications/Appname.app/Contents/MacOS/Appname"];
答案 2 :(得分:0)
怎么样:
NSRunningApplication *newAppRunning = [[NSWorkspace sharedWorkspace] launchApplicationAtURL:[[NSBundle mainBundle] bundleURL] options:NSWorkspaceLaunchAsync | NSWorkspaceLaunchNewInstance configuration:nil error:&erroer];
这将允许重新启动当前的应用程序。如果它们都在同一个应用程序组中,它可能会起作用。