OS X沙盒:LSOpenFromURLSpec()返回-10827

时间:2012-04-03 08:19:40

标签: objective-c macos cocoa appstore-sandbox

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

如果我们使用的话无关紧要:

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

或:

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

每次都会返回错误。我们如何解决这个问题?

3 个答案:

答案 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];

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

另见:Is it possible to relaunch an app when sandbox deployed?