试图让我的应用程序与沙盒一起工作时我遇到了这个问题:
我需要将我的应用程序添加到登录项,因此我已按照以下步骤操作:
创建一个 HelperApp.app(使用
is agent = YES
),在打开时执行此代码:NSString *appPath = @"/Applications/MyNewApp.app"; [[NSWorkspace sharedWorkspace] launchApplication:appPath]; [NSApp terminate:nil];
这个应用程序是沙盒的。
我使用子路径
向我的 MyNewApp.app 包添加了复制构建阶段Contents/Library/LoginItems
和目标wrapper
显然 MyNewApp.app 也是沙盒
在 MyNewApp.app 中,我使用
的 bundle idSMLoginItemSetEnabled
注册了 HelperApp.app
现在一切正常,但是...当 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/