我需要一种从作为安装程序的一部分运行的 postflight 脚本将应用程序添加到登录项的方法。它需要在 10.5+ 上工作。最好是在 bash 脚本中工作。我的应用程序已经需要管理权限。
我在这里找到的方法:Mac OS Login Items with Arguments?似乎在正确的轨道上(包括在下面)......但是当我在命令行上尝试它时没有工作,我不确定如何为所有用户安装它,或者我是否需要添加逻辑来检查是否在调用此代码之前,它已经添加到启动项中。
#!/bin/bash
/usr/bin/osascript -e "tell application \"System Events\" to make new login item with properties { path: \"$1\", hidden:false } at end"
我怀疑我也可以用launchd做点什么。但是,我不确定哪种方法是跨版本兼容性的最佳实践。
注意:我不想在我的应用程序中使用一些 Objective-C 代码来添加它。我需要安装程序来添加它。 目前,我所做的是在安装后启动应用程序,然后使用 LSSharedFileListRef 将其添加到代码中的登录项...可以在此处找到该方法的示例:How do you make your App open at login?. 这不好的原因是我需要在登录屏幕上通过命令行使用 Apple Remote Desktop 安装我的应用程序。因此,应用程序在安装后不需要自动启动。