macOS应用“已损坏”警告源于Gatekeeper安全机制,可通过五种方法解决:一、右键选择“打开”授权;二、终端执行xattr命令清除隔离属性;三、启用“任何来源”权限;四、用codesign重签名;五、为终端授予完全磁盘访问权限。

如果您在Mac上尝试运行某个应用程序时,系统弹出“已损坏,无法打开。您应该将它移到废纸篓”或“来自身份不明的开发者”的警告,则通常是由于macOS Gatekeeper安全机制拦截了未签名、未公证或被标记为隔离的应用程序。以下是针对该问题的多种具体解决方法:
一、通过右键菜单手动授权首次运行
此方法利用macOS内置的“首次手动确认”机制,在不修改系统全局策略的前提下,为单个应用授予一次性运行权限,并将其后续标记为可信。操作后该应用可直接双击启动,无需重复确认。
1、在访达中进入“应用程序”文件夹,定位到提示“已损坏”的应用程序图标。
2、按住Control 键不放,同时点击该应用程序图标。
3、从弹出的快捷菜单中选择“打开”选项。
4、在再次出现的安全警告窗口中,点击下方的“打开”按钮。
5、应用成功启动后,系统即完成对该应用的信任登记。
二、清除应用的隔离属性(quarantine)
从互联网下载的.app文件会被系统自动添加com.apple.quarantine扩展属性,这是触发“已损坏”警告的直接技术原因;移除该属性即可恢复系统对应用的正常识别与加载流程。
1、打开“终端”应用(可在“启动台→其他”或“应用程序→实用工具”中找到)。
2、输入命令前半部分:sudo xattr -r -d com.apple.quarantine(注意末尾保留一个空格)。
3、切换至访达,进入“应用程序”文件夹,将目标App图标直接拖拽到终端窗口中,路径将自动补全。
4、按回车执行命令,输入管理员密码并回车确认(密码输入过程无显示,属正常现象)。
5、等待命令执行完毕(无输出即表示成功),随后尝试双击打开该应用。
三、启用系统级“任何来源”安装权限
Gatekeeper默认仅允许运行App Store和已公证开发者的应用,“任何来源”选项可解除该限制,使所有本地安装的应用获得运行资格,适用于需频繁安装第三方软件的用户场景。
1、打开“终端”应用。
2、输入命令:sudo spctl --master-disable,然后按回车。
3、系统提示输入密码时,输入您的管理员密码(输入过程无显示),再按回车。
4、打开“系统设置”→“隐私与安全性”,向下滚动至“安全性”区域。
5、在“允许从以下位置下载的应用”选项中,勾选“任何来源”(若未立即显示,请稍等数秒或重启系统设置窗口)。
四、对应用执行强制代码重签名
当应用因签名失效、证书过期、签名链断裂或签名损坏而被拒载时,可通过codesign工具赋予临时有效签名,重建系统可验证的代码签名链,从而满足加载条件。
1、确保已安装Command Line Tools:在终端中运行xcode-select --install,按提示完成安装。
2、在终端中输入命令:sudo codesign --force --deep --sign -(注意末尾有空格)。
3、切换至访达,将目标应用图标拖入终端窗口,补全路径。
4、按回车执行重签名命令,输入管理员密码并回车确认。
5、命令完成后,双击该应用即可尝试启动。
五、授予终端“完全磁盘访问权限”(macOS 13+ 必需步骤)
在macOS Ventura 13及以上版本中,终端若未获得完全磁盘访问权限,执行xattr或codesign等命令时会返回“Operation not permitted”错误;此权限是底层系统调用的前提保障。
1、打开“系统设置”→“隐私与安全性”→“完全磁盘访问权限”。
2、点击左下角锁图标解锁设置(需输入管理员密码)。
3、点击“+”号按钮,导航至“应用程序→实用工具”,选择并添加“终端”应用。
4、确认终端出现在授权列表中且复选框已勾选。
5、重新打开终端并执行前述清除隔离属性或重签名命令。



















