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

3
我已经阅读了很多关于如何在登录时启动我的应用程序的问题。我已经多次按照这个很棒的教程进行尝试。那个教程确实有效。但是...
使用帮助程序并使用SMLoginItemSetEnabled进行注册的一个副作用是,我的应用程序不会显示在用户的系统偏好设置中的登录项中。
App Store中有几个应用程序(例如PopClip和Dash)可以实现我正在尝试的功能。我只是无法弄清楚如何......
更新:我从Dash开发人员那里了解到Dash实际上没有沙箱。他还认为PopClip也没有。这可能可以解释一些事情... https://alpha.app.net/kapeli/post/3975968 更新#2:我刚刚从PopClip dev那里得到了确认,它确实也没有沙箱。 https://twitter.com/pilotmoon/status/313746294361427968 通过最后两个更新,我想答案很明确。截至今天,使用沙盒应用程序无法完成此操作。
2个回答

1

希望不会太晚。

在苹果的 "Daemons and Services Programming Guide" 中:

添加登录项

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

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

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


0
在沙盒环境下,只能安装 Helper 应用程序作为登录项。您需要创建一个存储在主应用程序的 Contents/Library/LoginItems 文件夹中的 Helper 应用程序。
然后,您可以使用 SMLoginItemSetEnabled 将 Helper 设置为登录项,并要求登录项启动主应用程序。

正如您在他链接的教程中所看到的,他知道正确的方法来做这件事,问题是在偏好设置面板中向用户显示新添加的项目,当应用被沙箱化时似乎无法实现。 - Keith Smiley

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