gpt4 book ai didi

macos - SMLoginItemSetEnabled 返回成功但不添加登录项

转载 作者:行者123 更新时间:2023-12-04 19:27:30 25 4
gpt4 key购买 nike

我正在尝试向 macOS 应用程序添加登录项。该应用程序在其 plist 中设置为代理,因此它没有停靠栏图标,在启动时隐藏其主窗口,并在状态栏中放置一个图标以提供其 UI。

要添加登录项,我有:

  • 在项目中创建了一个新的 macOS 应用程序(启动助手)
  • 残疾人 Strip Debug Symbols During Copy在基础应用程序中
  • 添加了 Copy Files到基本应用程序的阶段,目标设置为 Wrapper , 子路径设置为 Contents/Library/LoginItems ,并将辅助应用程序添加到要复制的文件列表
  • 将助手应用程序设置为仅后台
  • 已启用 Skip Install对于助手应用程序
  • 从助手应用程序中删除了窗口
  • 向助手应用程序的 applicationDidFinishLaunching 添加了代码启动基础应用程序
  • 向基本应用程序添加了一个选项以调用 SMLoginItemSetEnabled((__bridge CFStringRef)@"com.mydomain.MyApp-Helper", enabled)允许切换登录项
  • 为基础和辅助应用程序启用沙箱和协同设计
  • 构建项目并将应用程序复制到/Applications
  • 从/Applications 启动应用程序并启用登录时启动的选项

  • 问题是,虽然我从应用程序中得到了 SMLoginItemSetEnabled 的反馈。成功,帮助应用程序不会在登录时运行,或者如果它运行,它不会启动基础应用程序。

    我查看了基本应用程序包的内部,帮助应用程序就在那里。我可以手动运行它,它会启动基本应用程序。我什至可以通过“系统偏好设置”手动将其添加为登录项,但它仍会启动基本应用程序。所以看起来即使 SMLoginItemSetEnabled正在返回 true ,实际上并没有安装登录项。或者,如果是,它无法从登录项启动和运行基本应用程序,即使我手动执行它也可以。

    最佳答案

    对此的解决方案是删除基础应用程序和助手应用程序的 DerivedData 文件夹。登录项似乎对要打开应用程序的哪个副本感到困惑,并且可能试图从 DerivedData 打开一个。删除这些文件夹并只在/Applications 中保留应用程序允许帮助应用程序从登录项启动基本应用程序。

    关于macos - SMLoginItemSetEnabled 返回成功但不添加登录项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51679478/

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