mas*_*ers 5 macos service-management
我正在尝试向 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,它实际上并没有安装登录项。或者,如果是,它无法从登录项启动和运行基本应用程序,即使我手动执行它也可以。
解决方案是删除基本应用程序和帮助程序应用程序的 DerivedData 文件夹。登录项似乎对要打开应用程序的哪个副本感到困惑,并且可能试图从 DerivedData 打开一个副本。删除这些文件夹并仅将应用程序保留在 /Applications 中,可以让帮助程序应用程序从登录项启动基本应用程序。
| 归档时间: |
|
| 查看次数: |
716 次 |
| 最近记录: |