沙盒,登录项目和启动应用程序

时间:2012-06-26 17:26:42

标签: objective-c cocoa sandbox

尝试让我的应用程序与沙盒一起使用我遇到了这个问题:

我需要将我的应用程序添加到登录项目中,因此我已按照以下步骤操作:

  • 创建一个 HelperApp.app (带有is agent = YES),在open exec执行此代码:

    NSString *appPath = @"/Applications/MyNewApp.app";
    [[NSWorkspace sharedWorkspace] launchApplication:appPath];
    [NSApp terminate:nil];
    

    这个应用程序是沙盒。

  • 我在MyNewApp.app包中添加了一个复制构建阶段,其中包含子路径Contents/Library/LoginItems和目标wrapper

    显然 MyNewApp.app 也是沙盒

  • MyNewApp.app 中,我使用SMLoginItemSetEnabled注册了 HelperApp.app

  • 的软件包ID

现在一切正常但......当 MyNewApp.app 尝试启动 MyNewApp.app 时出现错误:

LSOpenFromURLSpec() returned -10827 for application /Applications/MyNewApp.app path (null).

但是,如果我尝试使用HelperApp.app来启动一个非沙盒(即Steam.app)应用程序,它就像一个魅力!

还有其他方法可以启动该应用吗?可能NSWorkSpace使用沙盒上下文中不允许的功能。你有什么建议?

1 个答案:

答案 0 :(得分:4)

您可能需要查看我在how to get launch at login working in the sandbox上的教程。