3

我正在使用本教程向我的应用程序添加登录项。大部分都按预期工作,我设法创建了一个沙盒帮助应用程序并将其注册到启动服务中,因此它应该在登录时启动。

现在的问题是,本教程并没有非常具体地说明您应该如何从这个帮助应用程序中启动您的主应用程序包。它仅包括以下内容:

[[NSWorkspace sharedWorkspace] launchApplication:
@"/Path/To/Main/App/Bundle"];

但是,如果我尝试使用任何 NSWorkspace 方法以完整路径启动应用程序,它会失败,因为 Sandbox 不允许这样做。

如果我尝试将上述方法的参数设置为我的应用程序名称,它可以工作,但奇怪的是会启动我的应用程序的旧版本(我将这些存储在我的硬盘上,但它们不在 /Applications 文件夹中,只有我的应用程序的正确版本位于 /Applications 文件夹中)

现在有人为什么会发生这种情况,或者我该如何解决这个问题?

4

1 回答 1

6

我发现 Helper 应用程序需要可执行文件的路径,而不是包的路径。

所以如果你给它:/Applications/My Great App.app 尝试使用:/Applications/MyGreatApp.app/Contents/MacOS/My Great App

如果您的沙盒应用程序不在 Applications 文件夹中,则会在记录各种权限错误时静默失败。

于 2012-03-14T07:29:10.757 回答