OpenLess 中文文档 下载 App

macOS「OpenLess 已损坏」——Gatekeeper ad-hoc 签名绕过方法

问题现象

macOS 上打开 OpenLess DMG、把 app 拖进应用程序文件夹后,双击启动时可能弹出以下提示之一:

-「OpenLess 已损坏,无法打开」-「无法打开「OpenLess」,因为无法验证开发者」

为什么会这样

OpenLess 当前版本使用 ad-hoc 签名(开发者自己签的,没通过 Apple 公证)。Apple 的 Gatekeeper 机制会:

  1. 检测到应用文件带有 quarantine 标记(网络下载的文件默认有)
  2. 验证签名不是 Apple 公证过的开发者签名
  3. 拒绝启动、并提示「已损坏」或「无法验证开发者」

这不是 OpenLess 真的损坏了——是 Apple 的安全机制把 ad-hoc 签名的应用挡在了门外。

解决办法

打开终端(Terminal.app),执行这一条命令:

xattr -cr /Applications/OpenLess.app

执行完后直接再次双击 OpenLess 就能正常启动了——不需要再做别的操作。

命令解释

部分含义
xattrmacOS 扩展属性管理工具
-crrecursive(递归清除) + clear(清除)——递归清除目录下所有文件的扩展属性
/Applications/OpenLess.appOpenLess 应用包的绝对路径

这条命令清除的是 macOS 给网络下载文件附加的 quarantine 扩展属性(com.apple.quarantine)。清除后 Gatekeeper 就不会再拦截这个应用了。

每次更新后都要跑

⚠️ 每次用新版本 DMG 覆盖安装后都要重新跑一次这条命令——新下载的 DMG 解压出来的 app 又会带 quarantine 标记。简单记:更新 → 跑命令 → 启动。

Homebrew 安装的也一样:brew upgrade openless 后同样需要跑 xattr -cr。

替代方法:右键「打开」

如果不想碰终端,还有一种图形界面的绕过方法:

  1. 打开「应用程序」文件夹
  2. 右键点 OpenLess → 选「打开」(不是双击)
  3. 弹出的警告里仍然会提示「无法验证开发者」,但多了一个「打开」按钮
  4. 点「打开」即可启动

但每次更新后还是要重复右键打开——不如跑命令一劳永逸(当前版本内)。

为什么 OpenLess 不做 Apple 公证

Apple 公证需要每年 99 美元的开发者账号 + 完整的签名和公证流程。OpenLess 作为一个开源免费工具,作者暂时没有做完整 Apple Developer Program 注册。未来如果有预算和时间可能补上,当前阶段只能靠用户手动绕过。

跑完命令还是报「已损坏」怎么办

极少数情况下 xattr -cr 也不管用。试试:

  1. 先删除 /Applications/OpenLess.app,重新从 DMG 拖入
  2. 拖入后先跑 xattr -cr,再双击启动(不要先双击,先清属性)
  3. 如果还是不行,看 Gatekeeper 日志:spctl --assess /Applications/OpenLess.app(会告诉你具体哪一步校验失败)

完成 Gatekeeper 绕过之后,别忘了还要在「系统设置 → 隐私与安全性」里授予 OpenLess麦克风和辅助功能权限。授权后必须完全退出并重启 OpenLess——辅助功能权限只在重启后生效。