⚠️
"XXX.app" 已损坏,无法打开。您应该将它移到废纸篓。
下载了 Clash Verge Telegram OBS 等软件,双击打开就弹这个?
别慌,软件没坏,是 macOS 的安全限制在搞鬼。
Mac安装软件时弹框报错提示
1

xattr 命令 —— 移除隔离标记(推荐)

这是最精准的方法,只对指定应用生效,不影响系统整体安全设置。

已损坏无法打开-移到废纸篓弹窗
第一步:打开终端

Command + 空格,输入 Terminal(或"终端"),回车打开。

第二步:输入命令
# 把路径替换成你的应用路径 sudo xattr -rd com.apple.quarantine /Applications/Clash\ Verge.app

回车后输入你的 Mac 开机密码(输入时不会显示,正常输完回车即可)。

偷懒技巧:不想手动输路径?输入 sudo xattr -rd com.apple.quarantine 后加一个空格,然后把应用从"访达"直接拖进终端窗口,路径会自动填上。
拖拽应用到终端窗口自动填充路径
第三步:再次打开应用

双击应用,正常打开,搞定。

原理:macOS 给从网上下载的文件加了一个 com.apple.quarantine 隔离属性。xattr -rd 命令递归删除这个属性,系统就不再弹"已损坏"了。
2

允许「任何来源」—— 关闭 Gatekeeper

如果方法一不管用,或者你经常安装第三方软件懒得每次都敲命令,可以直接关闭 Gatekeeper。

第一步:打开终端,输入命令
sudo spctl --master-disable

回车后输入开机密码。

第二步:验证设置

打开 系统设置 → 隐私与安全性(旧版是"系统偏好设置 → 安全性与隐私"),你会看到"允许从以下位置下载的 App"多了一个 「任何来源」 选项,并且已选中。

系统偏好设置-安全性与隐私-任何来源
第三步:重新打开应用

现在再打开之前报错的应用,不会再弹"已损坏"了。

安全提示:开启"任何来源"后,所有未签名应用都可以直接打开。建议安装完需要的软件后,执行以下命令恢复默认:
sudo spctl --master-enable

为什么会出现这个问题?

🔒

Gatekeeper 机制

macOS 内置的安全守门人。它要求所有应用必须经过 Apple 公证签名,否则直接拦截,提示"已损坏"。

📄

隔离属性标记

浏览器下载的文件会被自动加上 com.apple.quarantine 扩展属性,告诉系统"这个文件来自网络,要检查"。

🚀

开源软件没签名

Apple 开发者账号每年 $99,很多开源/免费软件不会花钱做签名。没签名 ≠ 有病毒,只是没交"保护费"。

常见受影响的软件

以下软件从第三方下载后可能触发"已损坏"提示,用上面两招都能解决:

代理工具

Clash Verge Rev、ClashX、V2rayU、Surge(测试版)、Shadowrocket Mac

开发工具

VS Code Insiders、Sublime Text、iTerm2、TablePlus、Navicat

效率工具

Alfred、Bartender、CleanMyMac、Downie、IINA、OBS

设计/创意

Sketch、Figma Agent、Blender、DaVinci Resolve(第三方源)

常见问题

xattr 命令提示 No such file 怎么办?

确认应用已拖到 /Applications 文件夹。最简单的办法:

输入 sudo xattr -rd com.apple.quarantine (注意末尾有空格),然后把应用从访达直接拖进终端窗口,路径自动补全。

Apple Silicon(M1/M2/M3/M4)也能用吗?

完全通用。无论 Intel 还是 Apple Silicon 芯片,两个命令一模一样。

两个方法都试了还是打不开?

按顺序排查:

1. 右键应用 → 选择「打开」(不是双击)

2. 重启 Mac 再试

3. Apple Silicon Mac 某些 x86 应用需要 Rosetta 2:softwareupdate --install-rosetta

4. 重新下载应用(可能下载不完整)

提示「来自身份不明的开发者」怎么办?

这个比"已损坏"好解决。右键应用 → 选择「打开」→ 弹窗点「打开」就行。或者直接用方法二开启"任何来源"。

允许任何来源安全吗?

macOS 还有 XProtect(恶意软件检测)在后台保护你,不会完全裸奔。但建议:

1. 只安装来源可信的软件(官网/GitHub)

2. 装完后执行 sudo spctl --master-enable 恢复默认

系统更新后设置会被重置吗?

macOS 大版本更新(如 Ventura → Sonoma)可能重置 Gatekeeper 设置。重新执行 sudo spctl --master-disable 即可。xattr 方法不受影响,已清除标记的应用不会再报错。

怎么查看文件有没有隔离属性?

终端输入:xattr -l /Applications/应用名.app

如果输出里有 com.apple.quarantine 就说明被标记了。

DMG 文件本身提示已损坏怎么办?

对 DMG 文件也能用 xattr 命令:

sudo xattr -rd com.apple.quarantine ~/Downloads/xxx.dmg

清除后双击 DMG 就能正常挂载了。