在 MacOS Catalina
(MacOS 10) 以上的系统中,由于苹果对安全性检查的升级,经常发现网上下载的软件或安装程序双击打开时会报以下的错误:
- 无法打开 xxxx。您应该将它移到废纸篓。
- 无法打开 xxxx,因为 Apple 无法检查其是否包含恶意软件。
- xxxx 已损坏,无法打开。您应该推出磁盘映像。
当软件无法直接安装时,可以采用以下的方案。
建议按顺序尝试。
1. 开启允许任何来源
MacOS 默认只允许来自「App Store
」或「App Stroe
和被认可的开发者」发布的应用。
被认可的开发者:购买了苹果的企业证书——俗称保护费,一年 99 美元——对应用进行签名的开发者。
有的软件因为没有购买证书,软件在打开安装程序时会被 MacOS 阻止,这时候可以尝试开启「系统偏好设置 > 安全与隐私 > 通用 > 允许从以下位置下载的 App」中的 「任何来源」 后再进行安装。
「任何来源」在较新的系统中默认是隐藏的,可以通过终端执行下面的命令开启:
sudo spctl --master-disable
执行后就能够在系统偏好设置中看到「任何来源」的选项已经被开启。
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. 覆盖恶意软件保护
在安装程序成功安装软件后,打开软件时可能还会出现恶意软件弹窗而被阻止,这时候可以尝试「右键软件 > 显示简介」,然后勾选 覆盖恶意软件保护。