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

Mat*_*oal 6 cocoa sandbox objective-c

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

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

  • 创建一个HelperApp.app(带is agent = YES)在open exec这段代码:

    NSString *appPath = @"/Applications/MyNewApp.app";
    [[NSWorkspace sharedWorkspace] launchApplication:appPath];
    [NSApp terminate:nil];
    
    Run Code Online (Sandbox Code Playgroud)

    这个应用程序是沙盒.

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

    显然,MyNewApp.app也是沙箱

  • MyNewApp.app我注册SMLoginItemSetEnabled捆ID为HelperApp.app

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

LSOpenFromURLSpec() returned -10827 for application /Applications/MyNewApp.app path (null).
Run Code Online (Sandbox Code Playgroud)

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

有没有其他方式来启动应用程序?可能NSWorkSpace使用沙盒上下文中不允许的功能.你有什么建议?

Tim*_*Tim 4

您可能想看看我的教程,了解如何在沙箱中登录时启动

  • 请在您的答案中添加基础知识。当您的教程离线时,仅链接的答案就变得毫无用处。 (5认同)