macOS绕过Gatekeeper的方法

macOS 上有一个叫 Gatekeeper 的机制,它可以阻止未经验证的应用运行。然而,这个机制有时会妨碍正常的操作,以下是几种解决方法。

全局禁用Gatekeeper

在终端中输入以下命令:

sudo spctl --master-disable

在“系统偏好设置 - 安全性与隐私 - 通用”中,“允许从以下位置下载的 App”一项就会多出一个“任何来源”的选项。选择即可永久绕过 Gatekeeper。

要恢复原来的设置也很容易。在“系统偏好设置 - 安全性与隐私 - 通用”中,“允许从以下位置下载的 App”一项选择“App Store 和被认可的开发者”。接着在终端中输入以下命令:

sudo spctl --master-enable

单独允许一个应用运行

如果觉得全局禁用 Gatekeeper 有一定的风险,也可以单独允许一个应用运行。macOS 中,每个下载的应用都会有隔离扩展属性(com.apple.quarantine)。这个属性代表这个文件在运行前需要弹窗确认是否运行,以及被 Gatekeeper 检查或者拦截(如果有必要)。如果我们手动删除了这个属性,就可以让这个程序绕过 Gatekeeper。具体的做法是在终端中输入以下命令:

sudo xattr -r -d com.apple.quarantine /Path/To/Applications.app

参考文章

  1. How to Allow Apps from Anywhere in macOS Gatekeeper (Big Sur, Catalina, Mojave, Sierra, High Sierra)
  2. Clearing the quarantine extended attribute from downloaded applications