Skip to content

当Mac安装软件出现“已损坏,无法打开。您应该将它移到废纸篓”的提示时,这通常是由于macOS的Gatekeeper安全机制阻止了来自“未知来源”或未经验证的应用程序运行。以下是解决此问题的详细步骤和方法:

问题原因 ​

  • Gatekeeper安全机制: macOS系统默认只允许安装来自Mac App Store或已认证开发者的应用程序。未签名的第三方应用会被Gatekeeper阻止运行。
  • 应用程序隔离属性: 从互联网下载的应用程序会自动添加一个隔离属性(com.apple.quarantine),如果未通过验证,系统会认为它“已损坏”。
  • 软件本身损坏或不完整: 下载的安装包可能确实损坏或不完整。
  • 系统完整性保护(SIP): 在某些极端情况下,SIP可能会阻止特定操作,需要暂时关闭。

解决方案 ​

以下方法按推荐的尝试顺序排列,从最简单到更复杂。

方法一:通过“系统设置”/“系统偏好设置”开启“任何来源” (若有此选项) ​

在较旧的macOS版本中,可以在“安全性与隐私”设置中直接勾选“任何来源”选项。

  1. 打开 “系统偏好设置” (macOS Ventura 及更早版本) 或 “系统设置” (macOS Ventura 及更高版本)。
  2. 导航至 “安全性与隐私” (macOS Ventura 及更早版本) 或 “隐私与安全性” (macOS Ventura 及更高版本)。
  3. 在“通用”选项卡下,查看是否存在 “允许从以下位置下载的应用程序” 或 “允许任何来源” 选项。
  4. 如果存在,点击左下角的 锁形图标 解锁 (可能需要输入管理员密码)。
  5. 勾选 “任何来源”。

注意: 较新版本的macOS(如macOS Sierra 10.12及更高版本,包括Ventura、Sonoma、Sequoia)可能默认不显示“任何来源”选项。如果找不到,请尝试方法二。

方法二:通过终端命令开启“任何来源”(推荐) ​

如果“系统设置”中没有“任何来源”选项,可以通过终端命令来显示并启用它。

  1. 打开 “终端” 应用程序。可以通过“启动台” -> “其他” -> “终端”,或使用“聚焦搜索”(Spotlight)输入“终端”来快速打开。
  2. 根据您的macOS版本,输入以下命令之一:
  • 对于macOS 10.12到10.15.7:
  • 对于macOS 11(Big Sur)及更高版本(包括Ventura、Sonoma):
    bash
    sudo spctl --master-disable
    或
    bash
    sudo spctl --global-disable
  • 对于macOS 15 (Sequoia) 及更高版本(注意:spctl --master-disable可能被禁用,需尝试描述文件方法或等待更新):
    目前有报告指出macOS 15 Sequoia Beta3 系统中spctl --master-disable命令可能被禁用。此时可以尝试下面的“移除隔离属性”或“重新签名”方法,或者参考相关文章尝试通过描述文件配置,但此方法较为复杂且可能随系统更新而变化。
  1. 按回车键。
  2. 系统会提示输入 管理员密码。输入密码时终端不会显示字符(这是安全机制),直接输入后按回车键确认。
  3. 成功执行后,返回 “系统设置” / “系统偏好设置” -> “安全性与隐私” / “隐私与安全性” -> “通用” (或“安全性”),您应该能看到并勾选 “任何来源” 选项了。

重要提示: 开启“任何来源”会降低系统安全性,因为您允许运行来自任何开发者的应用程序。 建议仅在需要安装特定应用时临时启用,并在安装完成后执行以下命令恢复默认设置:

  • 对于--master-disable: sudo spctl --master-enable
  • 对于--global-disable: sudo spctl --global-enable

方法三:移除应用程序的隔离属性(推荐,适用于已开启“任何来源”仍无效的情况) ​

即使开启了“任何来源”,有些应用可能仍然因为其“隔离属性”而无法打开。可以通过终端命令移除此属性。

  1. 确保您已经尝试过并开启了“任何来源”选项(方法一或方法二)。
  2. 打开 “终端” 应用程序。
  3. 输入以下命令,并在命令末尾输入一个 空格:
bash
  sudo xattr -r -d com.apple.quarantine
  1. 不要按回车键!
  2. 打开 “访达” (Finder),导航到您的 “应用程序” 文件夹或应用程序所在的目录。
  3. 将出现“已损坏”提示的应用程序图标 拖拽 到终端窗口中 com.apple.quarantine 后面(空格之后)。这会自动填充应用程序的完整路径。
  4. 按回车键。
  5. 系统会提示输入 管理员密码。输入密码时终端不会显示字符,直接输入后按回车键确认。
  6. 现在尝试重新打开该应用程序。

注意: 对于macOS Ventura 13及以上系统,可能需要先前往“系统设置” -> “隐私与安全性” -> “完整磁盘访问权限”中允许“终端”拥有完整磁盘访问权限,否则可能会遇到“Operation not permitted”错误。

方法四:重新签名应用程序 (适用于上述方法无效或破解软件) ​

如果前述方法均无效,特别是对于一些破解或修改过的软件,可能需要重新对其进行签名。这通常需要安装Xcode命令行工具。

  1. 安装Command Line Tools for Xcode:
  • 打开 “终端”。
  • 输入命令:xcode-select --install
  • 按回车键,根据提示完成安装。
  1. 重新签名应用程序:
  • 打开 “终端”。
  • 输入以下命令,并在末尾输入一个 空格:
    bash
    sudo codesign --force --deep --sign -
  • 不要按回车键!
  • 打开 “访达”,找到出现问题的应用程序。
  • 将应用程序图标 拖拽 到终端窗口中 - 后面(空格之后)。
  • 按回车键。
  • 系统会提示输入 管理员密码。输入密码后按回车键确认。
  • 如果看到“replacing existing signature”提示,则表示签名成功。
  1. 现在尝试重新打开该应用程序。

方法五:右键“打开”强制运行 ​

对于某些应用,尤其是在最新macOS版本中,首次运行时即使遇到警告,也可以通过右键菜单强制打开。

  1. 找到您要打开的应用程序。
  2. 按住 Control 键 (或右键点击) 应用程序图标。
  3. 选择 “打开”。
  4. 在弹出的警告框中,再次点击 “打开”。
  5. 如果系统提示输入密码,输入您的管理员密码。

方法六:检查并重新下载安装包 ​

如果以上方法都无法解决,可能是下载的安装包本身存在问题:

  1. 完整性检查: 确保您下载的文件是完整的,没有在下载过程中中断。
  2. 来源可靠性: 尝试从官方网站或可信赖的来源重新下载安装包。
  3. 重新下载: 删除旧的安装包,清空废纸篓,然后重新下载。

方法七:暂时关闭SIP(不推荐,非必要勿用) ​

SIP (System Integrity Protection) 是macOS的一项重要安全功能,通常不建议关闭。只有在其他所有方法都无效,且您明确知道自己在做什么的情况下,才考虑此选项。

操作步骤:

  1. 重启Mac,并在启动时立即按住 Command (⌘) + R 键,直到看到Apple标志或旋转的地球,进入恢复模式。
  2. 在顶部菜单栏中,点击 “实用工具”,然后选择 “终端”。
  3. 在终端中输入命令:csrutil disable
  4. 按回车键,然后输入管理员密码(如果提示)。
  5. 重启Mac。
  6. 在安装完软件后,强烈建议您重复上述步骤,但在终端中输入命令:csrutil enable 来重新启用SIP,以保护您的系统安全。

总结与安全建议 ​

  • 安全性与便利性的平衡: 禁用Gatekeeper或移除隔离属性会降低Mac的安全性。请务必确认您信任要安装的应用程序及其来源。
  • 及时恢复安全设置: 如果您通过命令禁用了Gatekeeper,建议在安装完信任的软件后,使用 sudo spctl --master-enable 命令重新启用它。
  • 谨慎处理未知来源软件: 避免从不明来源下载和安装软件,以防恶意软件入侵。
  • 使用普通用户账户: 日常操作尽量使用非管理员账户,可以减少恶意软件的权限风险。

希望这些详尽的步骤能帮助您解决Mac安装软件时遇到的“已损坏,无法打开”问题!