背景
在MacOS上打开应用有时候会弹出:“Apple无法验证“xxx.app”是否包含可能危害Mac安全或泄漏隐私的恶意软件。”,但是这个应用几乎可以确认是绝对安全的。 这个提示是由于 macOS 的 Gatekeeper(网关守护)机制拦截了未经过 Apple 官方公证(Notarization)或来自未知开发者的应用程序。
解决
要彻底解决这个问题,有以下几种方法:
方法一:单应用解法(移除隔离属性) 当你从网络下载应用时,macOS 会自动给它打上 com.apple.quarantine(隔离)的扩展属性。通过终端移除这个属性,系统就会将其视作安全的本地文件,再也不会弹窗阻拦。
在终端中输入以下命令:
1
sudo xattr -r -d com.apple.quarantine /path/xxx.app
/path/xxx.app可以在访达(Finder)找到那个无法打开的 xxx.app,将其直接拖拽到终端窗口中(系统会自动补全该应用的路径)。按下回车,输入你的 Mac 开机密码并再次回车(输入密码时屏幕不会有任何显示)。
完成后,直接双击打开该应用,将不再有任何安全验证提示。这是最安全且最彻底的做法,因为它只针对特定应用放行,不会降低系统的整体安全性。
方法二:全局解法(开启“任何来源”) 如果你经常需要安装各种开源工具或未签名的第三方软件,且觉得每次都敲命令太麻烦,可以彻底关闭 Gatekeeper 的严格限制,恢复系统设置中的“任何来源”选项。 同样在终端中输入并执行以下命令:
1
sudo spctl --master-disable
输入密码并回车确认。
现在前往 系统设置 > 隐私与安全性,向下滚动到“安全性”板块,你会发现“允许从以下位置下载的应用程序”多出了一个 “任何来源” 的选项,并且已经被选中。
注意: 开启此选项后,系统将允许运行任何下载的软件,这会降低系统的防御阈值,请确保你清楚自己下载并运行的程序是安全的。