- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在开发的沙盒 Mac 应用程序遇到一个非常奇怪的问题。一项要求是用户应该能够在系统启动时启动应用程序。为此,我使用 SMLoginItemSetEnabled(),如 http://blog.timschroeder.net/2012/07/03/the-launch-at-login-sandbox-project/ 中所述。 .
当用户第一次启动应用程序并启用此选项时,我可以看到使用 launchctl list 将一个条目添加到 launchctl 中。当我重新启动系统时,该应用程序未启动。更奇怪的是,使用 launchctl list 找到的条目已经消失了。但是,类似的条目仍然可以在 /private/var/db/launchd.db/com.apple.launchd.peruser.501/overrides.plist 中使用,并且 key Disabled是假的。
当我手动启动应用程序并再次将选项设置为自动启动时,该条目再次出现在 launchctl 列表中。当我重新启动系统时,应用程序会自动启动。结论是,由于某种原因 SMLoginItemSetEnabled() 仅在我第二次运行该应用程序时有效。因此它看起来类似于这个问题:https://stackoverflow.com/questions/16354295/sandbox-app-with-loginitems-only-work-after-second-app-launch 。但没有提供解决方案。
最佳答案
如果您像我一样,您可能有额外的副本(由 Xcode 等生成),这似乎会让 LaunchServices 感到困惑。
我在这里写了一篇关于它的文章:Login Items in macOS 10.11 and newer
但简短的版本是,使用 lsregister -dump
查找 LaunchServices 知道的所有副本,将其删除,然后使用 lsregister -kill
重置 LaunchServices 数据库你已经完成了。
关于macos - 沙盒 Mac 应用程序并不总是使用 SMLoginItemSetEnabled() 自动启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18712279/
我是一名优秀的程序员,十分优秀!