MacOS 软件「无法打开」、「已损坏」的解决方案

MacOS 软件「无法打开」、「已损坏」的解决方案

Neet 1,651 2022-06-29

MacOS Catalina(MacOS 10) 以上的系统中,由于苹果对安全性检查的升级,经常发现网上下载的软件或安装程序双击打开时会报以下的错误:

  • 无法打开 xxxx。您应该将它移到废纸篓。
  • 无法打开 xxxx,因为 Apple 无法检查其是否包含恶意软件。
  • xxxx 已损坏,无法打开。您应该推出磁盘映像。

当软件无法直接安装时,可以采用以下的方案。

建议按顺序尝试。

1. 开启允许任何来源

MacOS 默认只允许来自「App Store」或「App Stroe 和被认可的开发者」发布的应用。

被认可的开发者:购买了苹果的企业证书——俗称保护费,一年 99 美元——对应用进行签名的开发者。

有的软件因为没有购买证书,软件在打开安装程序时会被 MacOS 阻止,这时候可以尝试开启「系统偏好设置 > 安全与隐私 > 通用 > 允许从以下位置下载的 App」中的 「任何来源」 后再进行安装。

「任何来源」在较新的系统中默认是隐藏的,可以通过终端执行下面的命令开启:

sudo spctl --master-disable

执行后就能够在系统偏好设置中看到「任何来源」的选项已经被开启。

system-settings

2. 绕过安全验证

如果开启了任何来源后仍旧无法打开安装程序,可以尝试删除软件上的安全验证信息,来达到绕过 MacOS 安全验证的目的。

在终端执行下面的命令:

sudo xattr -rd com.apple.quarantine <app-path>

其中 <app-path> 替换为应用或安装软件的路径,比如应用在 「应用程序 > XMind.app」,那么这个命令应该是:

sudo xattr -rd com.apple.quarantine /Applications/XMind.app

当然这里仅是举例,并不针对 XMind 或其他软件。

当然也可以从 Finder 中找到软件或安装程序直接 拖入 到终端。

3. 重置签名

当软件或安装程序的发布者签名的证书过期或注销后,上述的方法可能均会无效,这时可以尝试手动重置签名。

重置签名前需要确保设备上已经正确安装了 Command Line Tools,这是 MacOS 自带的命令行工具,如果安装了 XCode 基本上会附带安装,否则需要手动安装以下,在终端执行命令安装:

xcode-select --install

安装可能持续较久的时间,可以百度一下寻找一些提高速度的方法。

安装完毕后在终端执行下面的命令进行签名重置:

sudo codesign --force --deep --sign - <app-path>

如果执行成功终端会出现下面的内容:

<app-path>: replacing existing signature

如果出现了下面的错误:

<app-path>: resource fork,Finder information,or similar detritus not allowed

则可以按照以下的步骤操作:

# 先执行
xattr -cr <app-path>
# 再执行
sudo codesign --force --deep --sign - <app-path>

4. 覆盖恶意软件保护

在安装程序成功安装软件后,打开软件时可能还会出现恶意软件弹窗而被阻止,这时候可以尝试「右键软件 > 显示简介」,然后勾选 覆盖恶意软件保护

brief-introduction


参考文档


# MacOS