objective-c - 沙盒、登录项目和启动应用程序

标签 objective-c cocoa sandbox

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

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

  • 创建一个 HelperApp.app(使用 is agent = YES),在打开时执行此代码:

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

    这个应用程序是沙盒的。

  • 我使用子路径 Contents/Library/LoginItems 和目标 wrapper

    向我的 MyNewApp.app 包添加了复制构建阶段

    显然 MyNewApp.app 也是沙盒

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

    的 bundle id

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

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

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

还有其他启动应用程序的方法吗?可能 NSWorkSpace 使用沙箱上下文中不允许的函数。你有什么建议?

最佳答案

您可能想看看我在 how to get launch at login working in the sandbox 上的教程.

关于objective-c - 沙盒、登录项目和启动应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11212796/

相关文章:

objective-c - Cocoa应用程序不显示textview

cocoa - NSTask字符串编码问题

macos - SceneKit 从动画 SCNNode 中获取当前 SCNNode 位置

objective-c - 如何在沙盒应用程序中使用辅助功能?

cocoa - 了解 MainApp 是否由 HelperApp 启动

wordpress - 取消 Paypal 沙盒定期付款

objective-c - 是否可以在 NSPredicate 中使用嵌套的 SUBQUERY?

ios - 添加导航 Controller 可防止在 Root View Controller 中调用 updateViewConstraints

objective-c - 在 iOS 应用程序中使用 STL

ios - 在数字前面加一个 + 号有什么作用?