“应用已损坏”多因隔离属性或签名问题,先用xattr -l检查com.apple.quarantine,存在则sudo xattr -d清除;若无隔离但codesign --verify报invalid,再sudo codesign --force --deep --sign -重签名,并确保已安装Xcode命令行工具。

macOS 中提示“应用已损坏”,绝大多数情况不是文件真坏了,而是签名失效、过期或被破坏,导致 Gatekeeper 拒绝运行。手动修复签名,本质是用临时可信身份重新签一遍,让系统认可它可执行。
确认是否真需重签名
先别急着敲命令——很多“已损坏”其实是隔离属性(com.apple.quarantine)惹的祸,跟签名无关:
- 打开终端,运行:
xattr -l /Applications/你的应用.app(把路径替换成真实路径) - 如果输出里有 com.apple.quarantine,说明只是被下载标记了,清掉它就能开,不用重签名
- 如果没 quarantine,但运行时报“无法验证开发者”“证书已过期”或
codesign --verify显示 invalid,那才是签名问题,需要重签
准备前提:装好签名工具
重签名依赖 macOS 自带的 codesign 工具,但它需要 Xcode 命令行工具支持:
- 在终端中运行:
xcode-select --install - 按提示安装(通常弹窗点“安装”即可)
- 装完后运行:
codesign --version,能显示版本号就说明就绪
执行重签名命令
命令本身简单,但细节决定成败:
- 终端输入:
sudo codesign --force --deep --sign - /Applications/你的应用.app - 把“你的应用.app”替换成实际名称,比如:
/Applications/HandBrake.app - 拖入路径更安全:输入命令前半部分后,留个空格,直接把应用图标从访达拖进终端,自动补全路径,避免输错空格或中文转义
- 回车,输入管理员密码(不显示字符,输完直接回车)
- 无报错即成功;若提示 no identity found,说明开发工具没装好,回去补装
配合清除隔离属性一起做
即使签名修复了,如果 quarantine 还在,Gatekeeper 仍可能拦截启动:
- 重签名前或后,顺手清一次隔离属性:
sudo xattr -r -d com.apple.quarantine /Applications/你的应用.app - 同样建议拖入路径操作,确保递归(-r)和删除(-d)都生效
- 完成后再双击测试,基本就能正常打开了


















