在Mac上遇到“无法验证开发者”或提示应用“已损坏”的弹窗,相信不少用户都曾感到困惑。很多人下意识会问“这个验证能不能跳过或取消”,但实话实说,系统正在严格执行数字签名和公证检查流程,你无法直接跳过或取消它——不过别担心,有办法绕过验证机制,让应用顺利运行。

先说一个直接结论:如果你只是偶尔遇到这类提示,完全可以采用“临时绕过”方案;但如果你想一次性解决所有问题,那就要权衡一下安全风险。
临时绕过签名验证(单次有效)
这个方法适用于你刚下载了一个已签名但未经过苹果公证的合法应用,双击后系统直接弹出警告并拒绝打开。操作并不复杂:
打开“访达” → 进入“实用工具” → 双击“终端”。
在终端中输入下面这条命令,记得将 App名称.app 替换成你实际需要运行的应用完整名称(注意保留空格和括号,例如 Zoom.us.app 或 Visual Studio Code.app):
sudo xattr -rd com.apple.quarantine /Applications/【App名称.app】
回车后输入当前管理员密码(输入时屏幕不会显示字符,正常敲完直接回车即可)。这条命令的作用很简单——移除系统为该文件附加的隔离属性(quarantine)。你可以把它理解为系统给新文件打上的一个“临时标签”,这个命令相当于告诉macOS:“这个文件我信任,以后别再检查它了。”
操作完成后,关闭终端,回到“应用程序”文件夹,双击那个应用,应该就能正常启动了。
永久禁用Gatekeeper(高风险的全局设置)
这种方案只适合那些需要频繁运行多个非App Store来源应用的用户——比如开发版、测试版或老旧工具的使用者,普通用户真的不建议尝试。
在终端中执行:
sudo spctl --master-disable
输入管理员密码确认。执行后,打开“系统设置” → “隐私与安全性” → “安全性”,你会发现“允许从以下位置下载的应用”选项里多了一个“任何来源”。也就是说,Gatekeeper签名验证已经被全局关闭了。
必须强调:这个操作会削弱系统的防护能力,恶意软件等于是少了一道拦截屏障。而且这个开关重启后不会自动恢复,需要你手动重新开启。
如果以后想重新启用验证,运行 sudo spctl --master-enable 即可。
撤销特定应用的公证状态检查(适用于已公证但首次运行仍报错)
macOS 10.15及以上版本有个特点:即便应用已经通过苹果公证,首次从网络下载运行时仍可能触发“开发者无法验证”的提示。这其实不是验证失败,而是系统在检查本地是否缓存了苹果服务器下发的公证票据(stapled ticket)。
这里提供两种应对方式:
方法一(最简单):右键点击应用图标,选择“打开”,在弹出的对话框中点击“打开”,就能绕开——注意,仅本次生效。
方法二(命令行方式):手动重新钉选公证票据。先确认应用路径,例如 /Applications/MyTool.app,然后执行下面这串命令:
xattr -d com.apple.quarantine "/Applications/MyTool.app" && sudo xattr -w com.apple.security.assessment.timestamp "$(date -u +"%Y-%m-%dT%H:%M:%SZ")" "/Applications/MyTool.app"
这条命令组合完成了两件事:清除隔离属性,同时伪造一个可信的时间戳。这套操作能避开绝大多数首次运行的弹窗。不过需要说明:如果应用本身没有经过苹果公证,那这条命令就无效,也无法解决根本问题。
