Mac 提示「已损坏,无法打开」怎么办?先走 Apple 官方步骤,xattr 只对可信 App 用
Apple 把这类提示归为「macOS 发现软件被修改或损坏,或授权被撤销」。先重新下载并核对来源,再用官方的「仍要打开」,最后才考虑对单个可信 App 用 xattr,并说明风险。本文按官方文档整理,没有在 Mac 上实测。

先说结论:Mac 提示 App 「已损坏,无法打开」,Apple 官方页面把它归在「App 已损坏」一类:macOS 检测到软件被修改或损坏,或者它的授权被撤销,就会告诉你这个 App 无法打开;检测到已知恶意软件时,还会直接把它移到废纸篓。所以第一反应不该是「怎么绕过」,而是先弄清这个文件有没有问题。顺序是:重新下载并核对来源,再看官方的「仍要打开」,最后才轮到对单个可信 App 用 xattr。不要为了打开一个 App 去关闭整台 Mac 的 Gatekeeper。
先说清楚我们能做和不能做的:我们的测试机是 Linux,没有 Mac。本文所有步骤都按 Apple 官方支持页(中文版、英文版,英文页标注发布日期 2026 年 5 月 27 日,我们 11 月 10 日读取)和 macOS 自带命令的说明整理,没有在 Mac 上复现,也没有截图。
Apple 官方怎么说
Apple 的「在 Mac 上安全地打开 App」页面按提示类型分了几种情况:
| 你看到的提示 | Apple 的说明 | Apple 页面给的办法 |
|---|---|---|
| 来自互联网的 App 第一次打开,问你要不要打开 | 正常的首次打开确认 | 确认是你想打开的 App 即可 |
| 无法检查是否含恶意软件,或开发者无法验证 | App 没有公证,或开发者没被识别 | 联系开发者、去 App Store 找更新版或替代品;确信来源可信才考虑临时放行(见下一节) |
| App 将损坏你的电脑,或 App 已损坏 | 检测到恶意内容或授权被撤销;或软件被修改、损坏,App 可能出了故障、已损坏或被篡改;已知恶意软件会被移到废纸篓 | 这一条下面页面没有给出绕过办法 |
对话框的原文(搜索里最常见的写法是「“某某”已损坏,无法打开。你应该将它移到废纸篓。」,英文是 "App" is damaged and can't be opened. You should move it to the Trash.)不是从 Apple 页面引来的,页面只描述了这类提示;具体措辞随系统版本可能不同,以你屏幕上的为准,我们没在 Mac 上截到。
第一步:先判断这个文件有没有问题
下面的命令都是 macOS 自带的,路径换成你的 App;我们没在 Mac 上跑过,输出长什么样以你机器为准。
1. 重新下载一次,只从开发者官网或官方 GitHub Releases 下。下载中断、浏览器或代理改了文件,都可能导致提示「已损坏」(这是常见经验,不是 Apple 的结论,我们没复现)。
2. 核对校验值。开发者如果公布了 SHA-256,对比一下:
shasum -a 256 ~/Downloads/某个安装包.dmg
3. 看签名。下面两条能看到这个 App 有没有被识别的开发者签名、有没有通过 Gatekeeper 评估:
codesign --verify --deep --strict --verbose=2 /Applications/某个App.app
spctl --assess --type execute -vv /Applications/某个App.app
签名校验报错,说明 App 内容和签名对不上,这时候放行就是在运行一个被改过的程序,应该直接删掉重下,而不是继续往下走。
4. 来源你没把握、签名也说不清的,就不要用。Apple 页面的意思是:运行没有签名和公证的软件,可能让电脑和个人信息暴露在恶意软件之下。
第二步:官方的「仍要打开」
这一步 Apple 只放在「未公证,或来自未识别开发者」的情况下,并且是先尝试打开一次,按钮才会出现:
1. 先双击打开这个 App,被拦下。
2. 打开「系统设置」,点「隐私与安全性」,向下滚动,点「仍要打开」。
3. 再弹出警告时,如果你完全确定,点「打开」。之后这个 App 会作为例外保存,可以像别的 App 一样双击打开。
注意:如果你的 Mac 由公司或学校管理,这些设置可能被管理员锁定。另外,Apple 页面没有说这个按钮对「已损坏」那一类提示也有效,所以看不到按钮并不奇怪,别急着去找更激进的办法。
第三步(最后手段):只对一个可信 App 用 xattr
xattr 这条做法不在 Apple 的官方页面里,是网上最常见的处理办法,所以我们把它放在最后,并且写清楚边界。
它做的事:删掉文件上的隔离标记 com.apple.quarantine。按 macOS 的机制,Gatekeeper 的首次打开检查是针对带这个标记的文件做的,标记没了,这个 App 就不再被检查。我们没在 Mac 上验证这一点。
它不会修复被改坏的文件,只是让系统不再检查。 所以只在下面三条都满足时才用:
- 你确定来源:开发者官网或官方仓库,不是论坛、网盘、破解站转来的。
- 你已经重新下载过,并且核对了校验值(如果开发者提供的话)。
- 这是单个 App,你知道它为什么没有公证(比如个人开发者的开源小工具)。
先看看有没有这个标记,再只对这一个 App 删:
xattr -l /Applications/某个App.app
xattr -dr com.apple.quarantine /Applications/某个App.app
几条红线:
- 路径写完整、只写这一个 App。不要在
/Applications整个目录上执行,不要用通配符*,也不要为了「一劳永逸」加sudo批量处理。 - 之后 App 升级,新下载的版本会重新带标记,要再判断一次,不要养成「下载完就删标记」的习惯。
- 如果上一步
codesign校验已经报错,别用这一招。 - 网上还有教你「关闭 Gatekeeper、允许任何来源」的办法,那是对整台 Mac 的所有下载关闭检查,不要照做,也不是处理单个 App 的合理代价。
常见问题
提示里写「你应该将它移到废纸篓」,真要删吗?
Apple 页面说,检测到已知恶意软件时 Mac 会直接把它移到废纸篓。如果提示是这样,听它的,别去捞出来打开。
是我下载的 Ollama、LM Studio 这类本地模型工具,也这样处理吗?
一样的顺序:官网重新下载、核对校验值、看签名,再决定。我们没在 Mac 上复现,所以不能说某个具体应用在你机器上是哪种原因。Ollama 的其他设置问题见 Ollama / llama.cpp 报错速查。
为什么我没有看到「仍要打开」?
Apple 页面说明按钮出现在你尝试打开 App 之后,且只用于未公证或未识别开发者的情况;设备被管理时设置也可能不可用。「已损坏」类提示 Apple 页面没有给放行步骤。