相关疑难解决方法(0)


有没有办法在launchd overrides.plist上更新SMLoginItemBookmarks数据

我正在开发一个大多数用户选择"在登录时启动"的OS X应用程序,这是您在菜单栏中找到的那种.

为了在登录时启动它,我正在使用SMLoginItemSetEnabled启动LoginHelper应用程序来打开主应用程序,如本教程所述.

该应用程序无法启动登录时只为少数用户.

我无法重现这个或跟踪原因,但我发现(在用户的机器上):

在应用程序登录时删除/Root/_com.apple.SMLoginItemBookmarks/[myapp]/Root/[myapp]打开/var/db/launchd.db/com.apple.launchd.peruser.$UID/overrides.plist然后重置启动修复了该问题.此外,我们对文件进行了差异化Data,书签上的内容也发生了变化.

作为参考,我在这里找到了关于overrides.plist的信息.

由于该应用程序同时具有Mac App Store和直接下载版本,因此我怀疑应用程序的多个副本设置为自动登录时启动可能是导致失败的原因,也许这些"书签"正在尝试打开另一个实例应用程序,可能会或可能不会被删除.

现在问题,只要这个应用程序需要保持沙盒:

  • 有没有办法在overrides.plist书签上更新该数据?
  • 有没有办法从overrides.plist中删除一个自己的应用程序来开始清理?
  • 这可能是一个已知问题吗?
  • 关于为什么书签似乎没有任何意义或如何解决它的任何其他建议将不胜感激.

注意:这是我在StackOverflow上的第一个问题,如果我没有遵循一些建议的礼节,请原谅.

macos objective-c launchd

9
推荐指数
1
解决办法
474
查看次数

标签 统计

macos ×2

objective-c ×2

autologin ×1

launchd ×1