将沙盒应用程序添加到登录项

时间:2013-03-18 18:41:11

标签: objective-c cocoa

我已经阅读了很多关于在登录时启动我的应用程序的问题。我多次提到这个awesome tutorial。该教程确实有效。但是...

使用帮助应用程序并使用SMLoginItemSetEnabled注册它的一方面影响是我的应用程序未显示在系统偏好设置中用户的登录项目内。

App Store中有几个应用程序(例如PopClip和Dash)可以执行我想要做的事情。我只是想不出来......

更新:我从Dash开发人员那里发现Dash实际上没有沙盒。他还认为PopClip也不是。这可以解释一些事情...... https://alpha.app.net/kapeli/post/3975968

UPDATE#2 :我刚收到PopClip dev的确认,它确实没有沙箱。 https://twitter.com/pilotmoon/status/313746294361427968

最后2次更新,我想答案很清楚。截至今天,使用Sandboxed应用程序无法实现此目的。

2 个答案:

答案 0 :(得分:1)

希望现在还为时不晚。

在Apple的“Daemons and Services Programming Guide”中:

  

添加登录项

     

有两种方法可以添加登录项:使用Service Management framework和使用共享文件列表。

     

使用服务管理框架安装的登录项在“系统偏好设置”中不可见,只能由安装它们的应用程序删除

     

使用共享文件列表安装的登录项在“系统偏好设置”中可见;用户可以直接控制它们。如果您使用此API,则您的登录项可以被用户禁用,因此与其通信的任何其他应用程序都应该具有合理的回退行为,以防登录项被禁用。

答案 1 :(得分:0)

在沙盒环境中,只能在登录项中安装Helper应用程序。您需要创建一个,存储在主应用程序的Contents/Library/LoginItems文件夹中。

然后,您可以使用SMLoginItemSetEnabled将帮助程序设置为登录项,并要求登录项启动主应用程序。

相关问题