Mac 应用提示“已损坏”打不开的解决办法
在 Mac 上下载应用时, 可能会出现“XXX 已损坏, 打不开”的错误提示, 无法正常使用该应用程序。这通常是因为下载过程中, 应用签名信息出了问题。下面我来告诉你如何解决这个恼人的问题:

临时绕过公证
如果你只想快速临时解决这个问题, 可以使用绕过公证的方法:
- 点击 Mac 左上角的“启动台”, 然后打开“其他”项下的“终端”程序, 启动终端窗口
- 在终端窗口里, 先输入下面的命令, 记得最后面留一个空格:
sudo xattr -rd com.apple.quarantine
如:sudo xattr -rd com.apple.quarantine /Applications/25mac.app
- 然后打开“访达”, 进入“应用程序”文件夹, 找到出问题的应用图标, 直接拖到终端窗口
- 拖入应用图标后, 按下回车键执行命令
- 这时会提示输入密码, 输入 Mac 的系统登录密码, 再按回车键
- 密码不会显示出来, 输入完直接回车确认
- 完成! 现在就可以打开这个应用了, 不会再提示损坏信息
以上步骤可以快速临时解决无法打开应用的问题, 但是重启电脑后会再次失效。如果想完全修复, 可以尝试下面的重新签名方法。
应用重新签名
这种方法可以永久修复应用签名, 解决该问题:
- 同样先打开“终端”程序, 输入以下命令, 记得最后留一个空格:
sudo codesign --force --deep --sign - 如:sudo codesign --force --deep --sign - /Applications/25mac.app
- 然后同样打开“应用程序”文件夹, 拖入问题应用到终端
- 按回车键执行命令, 输入密码, 完成签名
- 这次重启电脑后也不会再出现无法打开的情况了
SIP 大法
以上两种方法, 你可以根据需要选择一种来解决应用“已损坏”的问题, 重新无障碍打开应用程序。如果还是报错,就可以祭出大招了,需要关闭 SIP 文件系统保护,方法详见 MAC 关闭 sip
进阶
sudo xattr -rd com.apple.quarantine 命令详解如下:
sudo – 获取 root 权限执行命令
xattr – 用于管理 macOS 系统的扩展文件属性
-r – 递归地删除指定文件的扩展属性
-d – 删除操作, 不显示详细信息
com.apple.quarantine – 这个是 macOS 系统给下载的应用程序打上的标记, 包含来源 URL 等信息。
该命令的作用是递归删除指定文件或文件夹的 quarantine 扩展属性。
在 macOS 上, 从 internet 下载的应用程序会被加上 quarantine 标记, 系统会检验这个标记来决定是否允许打开该应用程序。
如果应用程序的 signature 签名出现问题,quarantine 标记就会导致“已损坏”错误。
使用 sudo xattr -rd com.apple.quarantine /Path/to/App 命令可以删除这个标记, 绕过安全检查, 临时解决无法打开 App 的问题。
需要注意, 此方法重启后会失效, 每次打开 App 都需要操作一次, 仅建议用于临时情况。
sudo codesign –force –deep –sign – 命令详解如下:
sudo – 获取 root 权限执行命令
codesign – 用于签名、验证代码签名的工具
–force – 强制进行签名操作, 不论原签名是否存在
–deep – 递归签名, 将签名应用到指定目标中的所有代码
–sign – 执行签名操作, 为目标文件添加签名
- 签名使用系统默认的身份进行签名
该命令的作用是:
- 强制对指定的目标 (应用程序等) 进行递归代码签名, 添加签名信息
- 不管原先是否存在签名, 都用系统默认身份重新进行签名
- 签名会应用到目标中的所有代码和组件上
在 macOS 上, 下载的应用缺失正确的签名信息会导致无法打开, 报“已损坏”错误。
使用此命令可以修复应用程序的签名, 解决该问题。与仅删除 quarantine 标记不同, 该方法可以永久解决问题。
需要注意, 签名使用的是系统默认证书, 与开发者原始签名不同, 可能导致软件运行异常。建议仅在必要时使用。