Mac 打开软件提示“已损坏,无法打开”的原因和解决方法

很多人在 MacBook 上安装软件时,可能会遇到这样的提示:

text "XXX.app"已损坏,无法打开。你应该将它移到废纸篓。

或者类似提示:

text 无法打开"XXX.app",因为无法验证开发者。

很多小白看到这个提示,会以为软件真的坏了,其实不一定。很多时候,这是 macOS 的安全机制拦截导致的。

本文整理一下这个问题的原因、解决方法,以及需要注意的风险。


一、为什么会提示软件"已损坏"?

macOS 有一套安全机制,叫做 Gatekeeper。

它的作用是检查你打开的软件是否安全,例如:

  • 软件是不是从 App Store 下载的
  • 软件有没有 Apple 开发者签名
  • 软件有没有经过 Apple 公证
  • 软件是不是从互联网、网盘、聊天工具下载来的
  • 软件是否带有隔离标记

当你从浏览器、网盘、微信、QQ、Telegram、GitHub、第三方网站下载软件时,macOS 可能会自动给这个软件加上一个扩展属性:

bash com.apple.quarantine

这个属性可以理解为:

这个软件是从互联网来的,打开前需要重点检查。

如果 macOS 检查后认为这个软件不可信,就可能提示:

text 软件已损坏,无法打开

但这并不一定代表软件真的损坏了,也可能只是系统拦截了它。


二、常见原因

出现这个问题,通常有下面几种情况:

1. 软件不是从 App Store 下载的

例如:

  • 官网下载
  • GitHub Release 下载
  • 网盘下载
  • 第三方网站下载
  • 朋友发来的安装包

这些软件可能会被 macOS 标记为"来自互联网"。


2. 软件没有经过 Apple 公证

有些开发者开发的软件可以正常使用,但没有提交给 Apple 做公证。

macOS 就可能提示无法验证开发者,甚至提示软件已损坏。


3. 软件签名异常

有些软件在压缩、解压、传输过程中,签名信息可能出现异常。

例如:

  • 解压工具不兼容
  • 下载过程中被中断
  • 文件被重新打包
  • 软件被第三方修改过

这种情况下,macOS 也可能认为软件不安全。


4. 软件被加了隔离属性

这个是最常见的情况。

可以使用下面命令查看 App 是否带有扩展属性:

bash xattr /Applications/XXX.app

如果看到类似内容:

bash com.apple.quarantine

说明这个 App 被 macOS 加了隔离标记。


三、解决方法

方法一:优先使用系统自带方式打开

如果提示"无法验证开发者",可以先尝试这种方式:

  1. 打开「系统设置」
  2. 进入「隐私与安全性」
  3. 找到被拦截的软件
  4. 点击「仍要打开」

或者:

  1. 在 Finder 中找到这个 App
  2. 按住 Control
  3. 点击 App
  4. 选择「打开」
  5. 再次确认打开

如果这种方法可以解决,优先使用这种方式。


四、使用命令行解决

如果上面的方法不行,可以使用 xattr 命令清除隔离属性。

假设软件安装在:

bash /Applications/XXX.app

可以执行:

bash sudo xattr -rd com.apple.quarantine /Applications/XXX.app

这里的 XXX.app 换成你的软件名称。

例如:

bash sudo xattr -rd com.apple.quarantine /Applications/Google\ Chrome.app

注意:如果 App 名称中有空格,需要加反斜杠 \ 转义,或者使用英文引号包起来。

例如:

bash sudo xattr -rd com.apple.quarantine "/Applications/Google Chrome.app"


五、为什么这个命令有效?

命令:

bash sudo xattr -rd com.apple.quarantine /Applications/XXX.app

拆开来看:

bash sudo

表示使用管理员权限执行。

bash xattr

表示操作文件的扩展属性。

bash -r

表示递归处理整个 App 目录。

因为 .app 在 macOS 里不是一个普通文件,而是一个文件夹。

bash -d

表示删除指定的扩展属性。

bash com.apple.quarantine

就是 macOS 给下载软件加上的隔离标记。

所以这条命令的意思是:

删除这个 App 以及它内部文件上的隔离标记。

清除后,macOS 不再把它当作"刚从互联网下载、需要重点拦截"的软件,所以很多情况下就可以正常打开了。


六、还有一种常见命令:xattr -cr

有些教程会让你执行:

bash xattr -cr /Applications/XXX.app

这个命令也可以解决问题。

它的含义是:

bash -c

清除所有扩展属性。

bash -r

递归处理整个 App。

也就是说:

bash xattr -cr /Applications/XXX.app

会清除这个 App 上的所有扩展属性,不只是 com.apple.quarantine。

所以它通常也能解决"软件已损坏"的问题。


七、推荐使用哪个命令?

更推荐使用这个:

bash sudo xattr -rd com.apple.quarantine /Applications/XXX.app

因为它只删除隔离属性,更精准。

不太建议一上来就用:

bash xattr -cr /Applications/XXX.app

因为它会清除所有扩展属性,范围更大。

一般来说:

bash sudo xattr -rd com.apple.quarantine /Applications/XXX.app

已经够用了。


八、完整操作示例

假设你安装了一个软件叫:

text Demo.app

路径是:

bash /Applications/Demo.app

第一步:查看是否有隔离属性

bash xattr /Applications/Demo.app

如果输出:

bash com.apple.quarantine

说明它被隔离了。


第二步:清除隔离属性

bash sudo xattr -rd com.apple.quarantine /Applications/Demo.app

然后输入 Mac 登录密码。

注意:终端输入密码时不会显示内容,这是正常的,输完直接回车即可。


第三步:再次打开软件

重新打开 Demo.app,一般就可以正常运行了。


九、如果软件名称有空格怎么办?

比如软件叫:

text Visual Studio Code.app

路径就是:

bash /Applications/Visual Studio Code.app

这时候命令要写成:

bash sudo xattr -rd com.apple.quarantine "/Applications/Visual Studio Code.app"

或者:

bash sudo xattr -rd com.apple.quarantine /Applications/Visual\ Studio\ Code.app

推荐小白使用第一种,加英文双引号更直观。


十、如果还是打不开怎么办?

如果清除隔离属性后还是打不开,可以尝试下面几种方式。

1. 重新下载软件

可能安装包真的下载不完整,建议去软件官网重新下载。


2. 换一个解压工具

如果是 .zip 或 .rar 文件,可能是解压过程导致文件异常。

可以尝试使用:

  • macOS 自带解压
  • The Unarchiver
  • Keka

重新解压后再安装。


3. 检查芯片架构是否兼容

现在 Mac 有 Intel 芯片和 Apple Silicon 芯片,也就是 M1、M2、M3、M4 等。

如果你下载的软件不支持当前芯片,也可能打不开。

一般软件会区分:

text Intel Apple Silicon Universal

如果你是 M 系列芯片,优先下载:

text Apple Silicon

或者:

text Universal


4. 检查系统版本是否支持

有些新软件需要较新的 macOS 版本。

例如软件要求:

text macOS 13 或更高版本

但你的系统是:

text macOS 12

也可能无法正常打开。


十一、这个方法安全吗?

这个命令本身没有问题,但不要对任何来历不明的软件随便使用。

因为清除隔离属性后,相当于绕过了 macOS 的一部分安全检查。

比较适合下面这些情况:

  • 软件来自官网
  • 软件来自 GitHub 官方 Release
  • 软件来自可信开发者
  • 软件是自己开发的
  • 软件来源明确、可靠

不建议对下面这些软件使用:

  • 破解软件
  • 不明网盘资源
  • 陌生人发来的安装包
  • 不明论坛下载的软件
  • 来历不清的工具类软件

如果软件本身有恶意,清除隔离属性并不会让它变安全,只是让 macOS 不再拦截它。


十二、常用命令汇总

查看 App 扩展属性

bash xattr /Applications/XXX.app

只删除隔离属性,推荐

bash sudo xattr -rd com.apple.quarantine /Applications/XXX.app

清除所有扩展属性,不优先推荐

bash xattr -cr /Applications/XXX.app

软件名称有空格时

bash sudo xattr -rd com.apple.quarantine "/Applications/XXX XXX.app"


十三、总结

Mac 提示软件"已损坏",很多时候并不是软件真的坏了,而是 macOS 的安全机制 Gatekeeper 认为这个软件来源不可信,或者软件带有 com.apple.quarantine 隔离属性。

推荐的解决方式是:

bash sudo xattr -rd com.apple.quarantine /Applications/XXX.app

如果软件来源可靠,执行后通常就可以正常打开。

但如果软件来源不明,不建议随便绕过系统安全检查。安全第一,尽量从官网或可信渠道下载软件。

相关推荐
寒水馨19 小时前
macOS下载、安装openclaw-v2026.7.1(附安装包OpenClaw-2026.7.1.dmg)
macos·大模型·github·开源软件·ai助手·openclaw·gpt-5.6
白玉cfc1 天前
【iOS】MRC和ARC
macos·ios·cocoa
飞雪金灵1 天前
mac电脑 Maven下载安装和配置环境变量
macos·maven·maven下载安装·mac电脑环境
雨声不在1 天前
macos 12使用docker
macos·docker·容器
一叶龙洲1 天前
ubuntu26.04 xfce美化成mac
服务器·ubuntu·macos
李小白杂货铺1 天前
Oh My Zsh 简记
macos·macbook·zsh·主题·插件·oh my zsh·omz
fukai77222 天前
macOS防止休眠的菜单栏小工具
macos
web守墓人2 天前
【go语言】gotar:使用go语言复刻tar命令,并加入7z支持,可独立运行在windows、linux、macos上
linux·macos·golang
之歆3 天前
从 Mac 回到 Windows:用 PowerToys + AutoHotkey 找回熟悉手感
windows·macos
星辰即远方3 天前
字符串合法性检验
macos·ios·cocoa