Objective c 向登录项目添加沙盒应用程序

Objective c 向登录项目添加沙盒应用程序,objective-c,cocoa,Objective C,Cocoa,我在这里已经阅读了很多关于在登录时启动我的应用程序的问题。我已经遵循这个建议很多次了。那个教程确实有用。但是 使用helper应用程序并使用SMLoginItemSetEnabled注册它的一个副作用是,我的应用程序不会显示在系统首选项中用户的登录项中 App Store中有几个应用程序(如PopClip和Dash)可以实现我的目标。我只是不知道怎么 更新:我从Dash开发者那里发现Dash实际上不是沙盒。他还认为PopClip也不是。这可以解释一些事情 更新#2:我刚从PopClip开发人员那

我在这里已经阅读了很多关于在登录时启动我的应用程序的问题。我已经遵循这个建议很多次了。那个教程确实有用。但是

使用helper应用程序并使用
SMLoginItemSetEnabled
注册它的一个副作用是,我的应用程序不会显示在系统首选项中用户的登录项中

App Store中有几个应用程序(如PopClip和Dash)可以实现我的目标。我只是不知道怎么

更新:我从Dash开发者那里发现Dash实际上不是沙盒。他还认为PopClip也不是。这可以解释一些事情

更新#2:我刚从PopClip开发人员那里得到确认,它确实没有沙盒


在最近的两次更新中,我想答案很清楚。到目前为止,沙盒应用程序无法实现这一点

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


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

希望不要太晚

在苹果的“”中:

添加登录项 添加登录项有两种方法:使用
服务管理框架
,以及使用共享文件列表

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

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


正如您在他链接到的教程中所看到的,他知道正确的方法,问题是在首选项窗格中向用户显示新添加的项,这在沙盒中是无法做到的。