当Mac安装软件出现“已损坏,无法打开。您应该将它移到废纸篓”的提示时,这通常是由于macOS的Gatekeeper安全机制阻止了来自“未知来源”或未经验证的应用程序运行。以下是解决此问题的详细步骤和方法:
问题原因
- Gatekeeper安全机制: macOS系统默认只允许安装来自Mac App Store或已认证开发者的应用程序。未签名的第三方应用会被Gatekeeper阻止运行。
- 应用程序隔离属性: 从互联网下载的应用程序会自动添加一个隔离属性(com.apple.quarantine),如果未通过验证,系统会认为它“已损坏”。
- 软件本身损坏或不完整: 下载的安装包可能确实损坏或不完整。
- 系统完整性保护(SIP): 在某些极端情况下,SIP可能会阻止特定操作,需要暂时关闭。
解决方案
以下方法按推荐的尝试顺序排列,从最简单到更复杂。
方法一:通过“系统设置”/“系统偏好设置”开启“任何来源” (若有此选项)
在较旧的macOS版本中,可以在“安全性与隐私”设置中直接勾选“任何来源”选项。
- 打开 “系统偏好设置” (macOS Ventura 及更早版本) 或 “系统设置” (macOS Ventura 及更高版本)。
- 导航至 “安全性与隐私” (macOS Ventura 及更早版本) 或 “隐私与安全性” (macOS Ventura 及更高版本)。
- 在“通用”选项卡下,查看是否存在 “允许从以下位置下载的应用程序” 或 “允许任何来源” 选项。
- 如果存在,点击左下角的 锁形图标 解锁 (可能需要输入管理员密码)。
- 勾选 “任何来源”。
注意: 较新版本的macOS(如macOS Sierra 10.12及更高版本,包括Ventura、Sonoma、Sequoia)可能默认不显示“任何来源”选项。如果找不到,请尝试方法二。
方法二:通过终端命令开启“任何来源”(推荐)
如果“系统设置”中没有“任何来源”选项,可以通过终端命令来显示并启用它。
- 打开 “终端” 应用程序。可以通过“启动台” -> “其他” -> “终端”,或使用“聚焦搜索”(Spotlight)输入“终端”来快速打开。
- 根据您的macOS版本,输入以下命令之一:
- 对于macOS 10.12到10.15.7:
- 对于macOS 11(Big Sur)及更高版本(包括Ventura、Sonoma):bash或
sudo spctl --master-disablebashsudo spctl --global-disable - 对于macOS 15 (Sequoia) 及更高版本(注意:
spctl --master-disable可能被禁用,需尝试描述文件方法或等待更新):
目前有报告指出macOS 15 Sequoia Beta3 系统中spctl --master-disable命令可能被禁用。此时可以尝试下面的“移除隔离属性”或“重新签名”方法,或者参考相关文章尝试通过描述文件配置,但此方法较为复杂且可能随系统更新而变化。
- 按回车键。
- 系统会提示输入 管理员密码。输入密码时终端不会显示字符(这是安全机制),直接输入后按回车键确认。
- 成功执行后,返回 “系统设置” / “系统偏好设置” -> “安全性与隐私” / “隐私与安全性” -> “通用” (或“安全性”),您应该能看到并勾选 “任何来源” 选项了。
重要提示: 开启“任何来源”会降低系统安全性,因为您允许运行来自任何开发者的应用程序。 建议仅在需要安装特定应用时临时启用,并在安装完成后执行以下命令恢复默认设置:
- 对于
--master-disable:sudo spctl --master-enable - 对于
--global-disable:sudo spctl --global-enable
方法三:移除应用程序的隔离属性(推荐,适用于已开启“任何来源”仍无效的情况)
即使开启了“任何来源”,有些应用可能仍然因为其“隔离属性”而无法打开。可以通过终端命令移除此属性。
- 确保您已经尝试过并开启了“任何来源”选项(方法一或方法二)。
- 打开 “终端” 应用程序。
- 输入以下命令,并在命令末尾输入一个 空格:
sudo xattr -r -d com.apple.quarantine- 不要按回车键!
- 打开 “访达” (Finder),导航到您的 “应用程序” 文件夹或应用程序所在的目录。
- 将出现“已损坏”提示的应用程序图标 拖拽 到终端窗口中
com.apple.quarantine后面(空格之后)。这会自动填充应用程序的完整路径。 - 按回车键。
- 系统会提示输入 管理员密码。输入密码时终端不会显示字符,直接输入后按回车键确认。
- 现在尝试重新打开该应用程序。
注意: 对于macOS Ventura 13及以上系统,可能需要先前往“系统设置” -> “隐私与安全性” -> “完整磁盘访问权限”中允许“终端”拥有完整磁盘访问权限,否则可能会遇到“Operation not permitted”错误。
方法四:重新签名应用程序 (适用于上述方法无效或破解软件)
如果前述方法均无效,特别是对于一些破解或修改过的软件,可能需要重新对其进行签名。这通常需要安装Xcode命令行工具。
- 安装Command Line Tools for Xcode:
- 打开 “终端”。
- 输入命令:
xcode-select --install - 按回车键,根据提示完成安装。
- 重新签名应用程序:
- 打开 “终端”。
- 输入以下命令,并在末尾输入一个 空格:bash
sudo codesign --force --deep --sign - - 不要按回车键!
- 打开 “访达”,找到出现问题的应用程序。
- 将应用程序图标 拖拽 到终端窗口中
-后面(空格之后)。 - 按回车键。
- 系统会提示输入 管理员密码。输入密码后按回车键确认。
- 如果看到“replacing existing signature”提示,则表示签名成功。
- 现在尝试重新打开该应用程序。
方法五:右键“打开”强制运行
对于某些应用,尤其是在最新macOS版本中,首次运行时即使遇到警告,也可以通过右键菜单强制打开。
- 找到您要打开的应用程序。
- 按住 Control 键 (或右键点击) 应用程序图标。
- 选择 “打开”。
- 在弹出的警告框中,再次点击 “打开”。
- 如果系统提示输入密码,输入您的管理员密码。
方法六:检查并重新下载安装包
如果以上方法都无法解决,可能是下载的安装包本身存在问题:
- 完整性检查: 确保您下载的文件是完整的,没有在下载过程中中断。
- 来源可靠性: 尝试从官方网站或可信赖的来源重新下载安装包。
- 重新下载: 删除旧的安装包,清空废纸篓,然后重新下载。
方法七:暂时关闭SIP(不推荐,非必要勿用)
SIP (System Integrity Protection) 是macOS的一项重要安全功能,通常不建议关闭。只有在其他所有方法都无效,且您明确知道自己在做什么的情况下,才考虑此选项。
操作步骤:
- 重启Mac,并在启动时立即按住 Command (⌘) + R 键,直到看到Apple标志或旋转的地球,进入恢复模式。
- 在顶部菜单栏中,点击 “实用工具”,然后选择 “终端”。
- 在终端中输入命令:
csrutil disable - 按回车键,然后输入管理员密码(如果提示)。
- 重启Mac。
- 在安装完软件后,强烈建议您重复上述步骤,但在终端中输入命令:
csrutil enable来重新启用SIP,以保护您的系统安全。
总结与安全建议
- 安全性与便利性的平衡: 禁用Gatekeeper或移除隔离属性会降低Mac的安全性。请务必确认您信任要安装的应用程序及其来源。
- 及时恢复安全设置: 如果您通过命令禁用了Gatekeeper,建议在安装完信任的软件后,使用
sudo spctl --master-enable命令重新启用它。 - 谨慎处理未知来源软件: 避免从不明来源下载和安装软件,以防恶意软件入侵。
- 使用普通用户账户: 日常操作尽量使用非管理员账户,可以减少恶意软件的权限风险。
希望这些详尽的步骤能帮助您解决Mac安装软件时遇到的“已损坏,无法打开”问题!