1

我们正在使用一个小助手应用程序在登录后启动我们的主应用程序。但是我们无法启动我们的主应用程序,因为 LSOpenFromURLSpec() 返回错误代码 -10827。

我们是否正在使用并不重要:

[[NSWorkspace sharedWorkspace] launchApplication:@"/Applications/Appname.app"];

或者:

[[NSWorkspace sharedWorkspace] launchApplication:@"Appname"];

它每次都返回错误。我们怎样才能解决这个问题?

4

3 回答 3

5

根据 LaunchServices 标头,该错误意味着它无法在应用程序包中找到可执行文件:

kLSNoExecutableErr            = -10827, /* The executable is missing*/

您在标题中提到了 OS X 沙盒,所以我假设您在使用沙盒应用时遇到了这个问题。可能不允许您使用应用程序的当前权限启动其他应用程序。一个简单的测试方法是编写一个不受限制的命令行工具,它只调用-launchApplication:.

于 2012-04-17T00:29:28.893 回答
1

尝试这个:

[[NSWorkspace sharedWorkspace] launchApplication:@"/Applications/Appname.app/Contents/MacOS/Appname"];
于 2012-04-16T22:57:35.763 回答
0

关于什么:

NSRunningApplication *newAppRunning = [[NSWorkspace sharedWorkspace] launchApplicationAtURL:[[NSBundle mainBundle] bundleURL] options:NSWorkspaceLaunchAsync | NSWorkspaceLaunchNewInstance configuration:nil error:&erroer];

这将允许重新启动当前的应用程序。如果它们都在同一个应用程序组中,它可能会起作用。

另请参阅:部署沙盒后是否可以重新启动应用程序?

于 2013-08-26T10:33:33.563 回答