Skip to content
0

macOS "应用程序已损坏,无法打开" 的解决方法总结 ​

问题现象 ​

在 macOS 上打开某些应用程序(尤其是从非 App Store 渠道下载的软件)时,系统可能会弹出以下提示:

  • "应用程序已损坏,无法打开。您应该将它移到废纸篓。"
  • "无法打开应用程序,因为无法验证开发者。"
  • "应用程序无法打开,因为 Apple 无法检查其是否包含恶意软件。"

注意:这类提示不一定意味着应用真的被损坏了,更多情况下是因为 macOS 的**门禁(Gatekeeper)**安全机制阻止了未经验证的软件运行。

原因分析 ​

macOS 通过以下安全机制保护用户:

  1. Gatekeeper(门禁):默认只允许运行来自 App Store 或已认证开发者的应用。
  2. 公证(Notarization):Apple 对开发者提交的应用进行自动化安全检查。
  3. 隔离属性(Quarantine):从互联网下载的文件会被打上隔离标记 com.apple.quarantine。

当应用没有通过上述检查时,就会被阻止运行。

解决方案 ​

方法一:移除隔离属性(最常用) ​

这是最常见也最有效的解决方法,通过 xattr 命令移除应用上的隔离标记:

shell
# 移除单个应用的隔离属性
sudo xattr -rd com.apple.quarantine /Applications/XXX.app

# 示例:移除 Chrome 的隔离属性
sudo xattr -rd com.apple.quarantine /Applications/Google\ Chrome.app

参数说明:

  • -r:递归处理目录
  • -d:删除指定属性
  • com.apple.quarantine:隔离属性名

注意:不建议直接对 /Applications/ 整个目录执行此操作(sudo xattr -dr com.apple.quarantine /Applications/),这会移除所有应用的隔离属性,降低系统安全性。请针对具体应用操作。

执行后,再次双击应用即可正常运行。

方法二:允许任何来源的应用 ​

macOS 默认隐藏了"任何来源"选项,但可以通过命令行开启:

shell
# 开启"任何来源"
sudo spctl --master-disable

# 关闭"任何来源"(恢复默认设置)
sudo spctl --master-enable

开启后,可以在 系统设置 → 隐私与安全性 → 安全性 中看到"任何来源"选项已被选中。

注意:开启"任何来源"会降低系统安全性,建议在安装完需要的软件后重新关闭。

方法三:临时绕过 Gatekeeper ​

如果只是想临时运行某个被阻止的应用,而不想修改全局设置,可以:

  1. 右键点击应用 → 选择 "打开"

    或者

  2. 按住 Control 键点击应用 → 选择 "打开"

    这样会弹出一个确认对话框,点击 "仍要打开" 即可。

方法四:使用命令行直接运行 ​

如果以上方法都无效,可以尝试通过命令行直接运行应用的可执行文件:

shell
# 进入应用包内容
cd /Applications/XXX.app/Contents/MacOS/

# 直接运行可执行文件
./可执行文件名

这种方法会绕过 Gatekeeper,但可能会在终端中显示一些日志信息。

方法五:签名应用(针对开发者或高级用户) ​

如果应用没有有效的开发者签名,可以使用自签名证书进行本地签名:

shell
# 使用 ad-hoc 签名(不需要开发者账号)
sudo codesign --force --deep --sign - /Applications/XXX.app

参数说明:

  • --force:强制重新签名
  • --deep:递归签名所有嵌套组件
  • --sign -:使用 ad-hoc 签名(仅本地有效)

方法六:检查应用完整性 ​

如果应用确实可能被损坏(如下载不完整),可以验证一下:

shell
# 检查应用包的完整性
spctl -a -vv /Applications/XXX.app

# 检查签名信息
codesign -dvv /Applications/XXX.app

各种报错对应的解决方案速查表 ​

报错信息推荐解决方案
应用程序已损坏,无法打开方法一:移除隔离属性
无法验证开发者方法三:右键/Control + 点击打开
Apple 无法检查其是否包含恶意软件方法一 + 方法二
应用闪退或无响应方法四:命令行运行查看日志,或重新下载安装

安全建议 ​

  1. 尽量从官方渠道下载软件:优先选择 App Store 或软件官方网站。
  2. 谨慎开启"任何来源":安装完成后建议关闭该选项。
  3. 不要随意移除系统级隔离属性:只对你信任且确认来源可靠的软件进行操作。
  4. 保持系统更新:macOS 的安全更新会修复已知漏洞。
  5. 使用杀毒软件:如果需要运行大量未经验证的软件,建议安装 macOS 上的安全软件。

参考资料 ​

最近更新