【转】MacOS安装软件及运行时,提示“已损坏无法打开”的解决方案
MAC 安装第三方下载的软件后,打开软件时经常会遇到提示“XXX 已损坏,无法打开。您应该将它移到废纸篓。” 的问题,如下图所示:

一、为什么会出现这个提示?
MacOS提示文件"已损坏"主要源于其多层安全机制对未通过验证的应用程序的拦截。以下是具体原因分析:
1. Gatekeeper 安全机制
- 核心功能:系统默认只允许运行来自 Mac App Store 或经苹果公证(Notarization)的开发者签名的应用;
- 触发条件:当检测到应用无有效开发者ID签名或未通过苹果公证时,会显示"已损坏"提示;
2. 隔离属性(Quarantine)
- 标记来源:由于 MacOS 系统的特性,通过浏览器、社交软件等其他地方下载的软件,系统会自动添加 com.apple.quarantine 扩展属性,表示这个软件不是从 App Store 下载的;
- 拦截表现:系统会阻止带有该属性的应用程序运行,并显示"来自未知开发者"或"已损坏"
二、如何解决?
1. 在程序坞找到「终端」应用程序并打开

2. 在终端依次输入以下两个命令:
第一个命令:sudo spctl --master-disable
注意:
- spctl 和 --master 之间有个空格;master 和 -disable 之间没有空格
- 输入命令后回车,会 提示输入密码,在出现 password 字样后,输入你的开机密码,输密码的时候是不显示密码的,你正常输入完密码后回车就行

这个命令主要是为了打开系统限制,运行系统运行第三方下载的软件。
运行命令后,会在 系统偏好设置 – 安全性与隐私 – 安全性 ,中显示“任何来源”选项,如下图,需要勾选上「任何来源」

第二个命令:sudo xattr -cr /Applications/XXX.app
注意:-cr 后面有个空格,然后是 /Applications/XXX.app
以滴答清单为例:
完整命令:sudo xattr -cr /Applications/TickTick.app
先输入 命令的前半部分:sudo xattr -cr,(cr 后面加一个空格)
然后打开「应用程序文件夹」,把滴答清单应用拖到终端里面,就会自动补全后半部分的命令(其实就是滴答清单应用程序的路径)

拖进去之后是这样,然后直接回车就行

这个命令主要是为了去除应用程序的 隔离属性,让它不被标记为第三方下载的软件
完成以上两步操作,再点击刚才的应用程序,就可以正常打开使用了。