沙盒化辅助应用无法启动正确的主应用程序

3
我将使用这个教程来为我的应用程序添加登录项。大部分工作都如预期一样运行,我已经成功创建了一个沙盒帮助器应用程序并在启动服务中注册它,因此它会在登录时启动。
现在的问题是,该教程没有明确说明如何在帮助器应用程序中启动主应用程序包。它只包含以下内容:
[[NSWorkspace sharedWorkspace] launchApplication:
@"/Path/To/Main/App/Bundle"];

但是,如果我尝试使用任何NSWorkspace方法来使用完整路径启动应用程序,则会失败,因为沙盒不允许此操作。

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

有人知道为什么会发生这种情况,或者如何解决这个问题吗?


如果您是注册的Mac开发人员,则请在开发者论坛上提出问题,回答问题的任何人都知道您和他们一样受到相同的保密协议限制。 - CRD
1个回答

6
我发现Helper应用程序需要可执行文件的路径,而不是捆绑包的路径。
因此,如果你提供的是: /Applications/My Great App.app 请尝试使用: /Applications/MyGreatApp.app/Contents/MacOS/My Great App 如果你的沙盒应用程序不在应用程序文件夹中,这将悄悄失败,同时记录各种权限错误。

非常感谢,我已经为此苦苦挣扎了一整天,偶然发现了这篇帖子。 - Francis McGrew

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接