我正在尝试将登录项添加到macOS应用。该应用在其plist中设置为代理,因此它没有停靠图标,在启动时隐藏其主窗口,并在状态栏中放置一个图标以提供其UI。
要添加登录项,我有:
Strip Debug Symbols During Copy
Copy Files
阶段,将目标设置为Wrapper
,将子路径设置为Contents/Library/LoginItems
,并将帮助程序应用程序添加到了要复制的文件列表中Skip Install
applicationDidFinishLaunching
中以启动基本应用SMLoginItemSetEnabled((__bridge CFStringRef)@"com.mydomain.MyApp-Helper", enabled)
以允许切换登录项问题是,尽管我从应用程序获得了SMLoginItemSetEnabled
成功的反馈,但助手应用程序未在登录时运行,或者如果运行,则不会启动基本应用程序。
我查看了基本应用程序捆绑包的内部,其中有助手应用程序。我可以手动运行它,并且它会启动基本应用程序。我什至可以通过“系统偏好设置”手动将其添加为登录项,它仍会启动基本应用程序。这样看来,即使SMLoginItemSetEnabled
返回true
,它实际上并没有安装登录项。否则,即使我手动执行该操作,也无法从登录项启动和运行基本应用。
答案 0 :(得分:2)
解决方案是删除基本应用程序和助手应用程序的DerivedData文件夹。似乎登录项对打开该应用程序的副本感到困惑,并且大概是试图从DerivedData中打开一个。删除这些文件夹并仅将应用程序保留在/ Applications中,则允许助手应用程序从登录项启动基本应用程序。