作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在使用 this tutorial将登录项添加到我的应用程序。大部分都按预期工作,我设法创建了一个沙盒助手应用程序并将其注册到启动服务,因此它在登录时按应有的方式启动。
现在的问题是,该教程并没有非常具体地说明您应该如何从这个帮助应用程序中启动您的主应用程序包。它仅包括:
[[NSWorkspace sharedWorkspace] launchApplication:
@"/Path/To/Main/App/Bundle"];
但是,如果我尝试使用任何 NSWorkspace 方法以完整路径启动应用程序,它就会失败,因为 Sandbox 不允许这样做。
如果我尝试将上述方法的参数设置为我的应用程序名称,它会起作用,但奇怪的是,我的应用程序会启动一个旧版本(我将这些存储在我的硬盘上,但它们不在/Applications文件夹,只有我的应用程序的正确版本在/Applications 文件夹中)
现在有人知道为什么会这样吗,或者我该如何解决这个问题?
最佳答案
我发现 Helper 应用程序需要可执行文件的路径,而不是包的路径。
所以如果你给它:/应用程序/My Great App.app尝试使用:/Applications/MyGreatApp.app/Contents/MacOS/My Great App
如果您的沙盒应用不在 Applications 文件夹中,这将无提示地失败,同时记录各种权限错误。
关于objective-c - 沙盒化助手应用程序无法启动正确的父应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9011836/
我是一名优秀的程序员,十分优秀!