gpt4 book ai didi

macos - 沙盒 Mac 应用程序并不总是使用 SMLoginItemSetEnabled() 自动启动

转载 作者:行者123 更新时间:2023-12-03 16:03:16 25 4
gpt4 key购买 nike

我正在开发的沙盒 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 。但没有提供解决方案。

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com