macOS Tahoe 提示「应用程序已损坏,无法打开」?Gatekeeper 与隔离属性完整修复指南
彻底解决 macOS Tahoe 26.5 上「应用程序已损坏,无法打开」的错误。详解 Gatekeeper、隔离属性、公证机制及全新的「仍要打开」操作流程。
你双击刚下载好的应用程序,macOS 却直接甩来一个对话框:「'应用程序'已损坏,无法打开。您应该将其移到废纸篓。」 这是 macOS 所有提示中最令人抓狂的之一——因为它几乎总是在说谎。应用本身鲜有真正损坏的情况。你实际看到的是 Gatekeeper——Apple 的应用审查系统——拒绝运行它无法验证的软件。而 Tahoe 26.5(2026 年 5 月 11 日发布)将这道门槛设得比以往任何时候都高。如果你在 macOS Tahoe 上遇到「应用程序已损坏,无法打开」的错误,本指南将详细说明其根本原因,以及如何在不破坏 Mac 安全防线的前提下安全解决。
这不是一篇「直接运行这条命令」的文章。移除隔离标志只需三十秒,但盲目操作正是人们在原本安全的机器上安装恶意软件的方式。所以我们要做的是正确的事:理解机制、解读你可能看到的三种不同对话框、弄清楚为什么合法应用会被标记,然后采用能解决问题的、侵入性最小的修复方案。读完本文,你不仅会知道该输入什么,还会知道是否该这样做。
核心要点
- 「应用已损坏」通常是隔离属性与签名问题,而非真正的文件损坏。 Tahoe 会为下载的文件附加
com.apple.quarantine扩展属性,并拒绝启动代码签名或公证票据无法验证的应用。 - 三种不同的对话框对应三种不同的问题。「已损坏」(签名损坏/缺失或 App Translocation)、「无法验证开发者身份」(未签名/未公证)以及「无法验证不含恶意软件」(公证检查未能完成),各有不同的原因和修复方法。
- 优先尝试安全路径:系统设置 > 隐私与安全性 > 「仍要打开」。 旧版右键单击 → 打开的绕过方式已在 macOS 15/26 世代中移除;Apple 现在将用户引导至这个单一的、需要主动确认的流程。
xattr -dr com.apple.quarantine等 Terminal 命令有效,但会降低安全性。 只对你真正信任且来源可靠的应用执行隔离属性移除操作。切勿对整个/Applications目录执行此类命令。- 不要将全局禁用 Gatekeeper 作为第一步。
spctl --master-disable的实际效果已不符合老旧教程的描述,「任意来源」选项在默认情况下是隐藏的,而全局关闭 Gatekeeper 的风险远大于批准单个应用。
Gatekeeper、隔离属性与公证机制的本质
在智能地修复错误之前,你需要理解产生该错误的三个相互交织的系统。人们常将这些术语混用,但它们是在应用启动时同时触发的独立机制。
Gatekeeper:门口的守卫
Gatekeeper 是 macOS 的子系统,负责判断应用程序是否被允许在首次打开时运行。它不是杀毒软件,也不会持续监控你的应用。把它想象成一个只在入口查一次 ID 的门卫。当你启动一个新下载的应用时,Gatekeeper 会问两个问题:这个应用是否由 Apple 认可的开发者进行了代码签名? 以及 这个应用是否经过 Apple 公证? 如果两个答案都是肯定的,应用会顺利打开。如果其中一个答案是否定的,Gatekeeper 就会阻止启动,并显示我们稍后将解读的对话框之一。
Gatekeeper 的策略由一个守护进程执行,并通过 spctl(安全策略控制)命令行工具对外暴露,这就是为什么每篇故障排查指南最终都会涉及 spctl。关键在于:Gatekeeper 只关心第一次启动。一旦你成功打开了某个应用,macOS 就会记住你的批准,不再提示。因此,修复的关键始终是通过那道初始的门,而不是永久改变应用的行为方式。
com.apple.quarantine 扩展属性
当你通过「具有隔离意识」的应用下载文件时——Safari、Chrome、Mail、Messages、AirDrop,以及大多数浏览器和聊天客户端——该应用会为文件附加一个名为 com.apple.quarantine 的扩展属性。扩展属性(xattr)是附着在文件系统中某个文件上的元数据片段,并不属于文件内容本身。隔离 xattr 是一个短字符串,记录着文件来自 Mac 外部的事实,以及一个标志位、时间戳、下载该文件的代理程序,以及一个唯一的事件 ID。
该事件 ID 与 LSQuarantine 数据库关联——这是一个存储在你主目录下的小型 SQLite 文件(历史路径为 ~/Library/Preferences/com.apple.LaunchServices.QuarantineEventsV2),记录着每个被隔离项目的来源。这就是 Gatekeeper 提示中「您于 [日期] 从 [网站] 下载了此文件」那行文字的数据来源。隔离 xattr 的存在是触发器,告知 Gatekeeper「这个文件来自外部世界,运行前请仔细审查」。移除该属性后,Gatekeeper 会将应用视为一直存在于你 Mac 上的文件——这正是为什么移除它既是最快的修复方法,也是最需要慎重判断的操作。
公证:Apple 的恶意软件预筛查
公证是整个机制中最新的环节,也是现代「已损坏」投诉浪潮的主要推手。自 macOS Catalina 起,Apple 要求在 App Store 之外分发的软件必须经过公证:开发者将已签名的应用上传至 Apple,Apple 的自动化服务会扫描已知恶意软件并检查签名是否正确,通过后 Apple 会颁发一个公证票据。该票据可以「装订」到应用中随文件一起传播,也可以由 Gatekeeper 在启动时从网络获取。
当你打开一个已公证的应用时,Gatekeeper 会验证票据——无论是装订的还是从 Apple 服务器拉取的——以确认 Apple 已审查并放行了这个确切版本。如果票据缺失、无法获取(你处于离线状态),或者应用在公证后被修改(这会使票据所担保的签名失效),检查就会失败,你就会被拦截。公证并非 App Store 审核;Apple 不评价质量,也不审查应用用途。它是一个恶意软件预筛查加签名完整性保障。理解这个区别很重要,因为「无法验证不含恶意软件」的提示往往意味着「我无法联系 Apple 来验证票据」,而不是「这是恶意软件」。
三种对话框逐一解读
以下是本文最实用的内容:对话框中的确切措辞告诉你哪里出了问题。在采取任何行动之前请仔细阅读,因为不同情况的修复方法各不相同。
对话框一:「'应用程序'已损坏,无法打开。您应该将其移到废纸篓。」
这是听起来最可怕、也最具误导性的一种。在绝大多数情况下,应用并未损坏。该对话框通常在以下情况出现:
- 应用具有
com.apple.quarantine属性,且其代码签名验证失败。签名失败的原因可能是应用未签名、使用了已吊销的证书,或者——对于合法应用来说最常见的——应用在签名后被修改。最典型的罪魁祸首是第三方解压工具或归档程序,它们无法正确保留扩展属性和符号链接,从而轻微破坏应用包,导致签名不再匹配。 - App Translocation(也称为 Gatekeeper 路径随机化)已触发,并在此基础上出现了其他问题。
- 应用存在架构不匹配——例如,在没有安装(或不再可用)Rosetta 2 的 Apple Silicon Mac 上运行仅支持 Intel 的二进制文件,或者通用二进制文件已损坏。
「已损坏」的措辞是 Apple 对「此应用未通过安全或完整性检查,且我不会为此给你一个软性的『仍要打开』按钮」的统称。这就是为什么这种情况通常不显示隐私与安全性覆盖选项,而是将你推向 Terminal。
对话框二:「'应用程序'无法打开,因为无法验证开发者身份。」
这是更温和、更诚实的版本。它意味着应用未签名或未公证——Apple 没有关于其开发者的记录,也没有经过恶意软件筛查。至关重要的是,此对话框通常附带**「移到废纸篓」和「取消」**两个按钮,而真正的解决路径在系统设置中,而非对话框本身。这种对话框最常见于开源工具、小众实用程序,或者没有购买 Apple 开发者账户的小型开发者发布的软件。通过官方「仍要打开」流程处理最为简便安全,详见下文。
对话框三:「Apple 无法验证'应用程序'不含恶意软件。」
这个措辞出现于 macOS 15/26 世代,也是最常被误解的。它不代表 Apple 发现了恶意软件,而是指 Gatekeeper 尝试验证应用的公证状态,但未能完成检查。常见原因包括:
- 你的 Mac 离线或位于严格的防火墙/代理后面,导致 Gatekeeper 无法访问 Apple 的公证服务器来验证票据。
- 应用已公证但票据未装订,且在线查询超时。
- 你的系统时钟不正确(详见下文),导致证书和票据的时效性检查失败。
此对话框通常也会引导你前往隐私与安全性中的「仍要打开」。如果你看到这个提示且确实处于在线状态,明智的做法是先查明检查失败的原因,然后再考虑绕过——一个已公证的应用本应顺利通过。
为什么合法应用会触发「已损坏」
我们来深入探讨一个完好的应用触发警报的具体原因,因为了解原因才能选对修复方案。
隔离标志本身
这是首要原因。你下载了一个完全合法的应用,浏览器为其附加了 com.apple.quarantine,如果应用签名稍有偏差,Gatekeeper 就会从「无法验证开发者身份」升级为「已损坏」。你可以直接查看该标志:
xattr -l /Applications/ExampleApp.app
被隔离的应用输出示例:
com.apple.quarantine: 0083;6612a3b0;Safari;5F1B2C3D-7A8E-4F90-B1C2-D3E4F5061728
com.apple.macl: [binary data, 72 bytes]
第一个字段(0083)是隔离标志值,后面依次是十六进制时间戳、应用该属性的代理程序(Safari),以及映射到 LSQuarantine 数据库的事件 UUID。如果运行 xattr -l 后根本没有 com.apple.quarantine 行,那么隔离属性不是你的问题,应转而排查签名或架构问题。
App Translocation(Gatekeeper 路径随机化)
这是比较隐蔽的情形。为了防止一类恶意应用加载其旁边恶意文件的攻击,macOS 会对被隔离的应用进行路径转移:当你从下载位置(如「下载」文件夹或已挂载的磁盘镜像)运行它,而没有先将其拖入 /Applications 时,macOS 会从一个随机化的只读临时挂载点而非真实位置启动该应用。应用看到的路径与其实际所在位置不同。
对大多数应用来说,这是不可见的。但那些期望相对于自身位置找到资源、或试图就地自动更新的应用,会以令人困惑的方式崩溃——有时表现为「已损坏」错误或启动时闪退。解决 App Translocation 的方法简单得出人意料:将应用从「下载」文件夹或 DMG 中拖出,放入 /Applications 文件夹,然后从那里启动。 移动应用包会清除该副本的路径转移状态。这一步骤解决了大量来自「直接从磁盘镜像运行应用」用户的「已损坏」报告。

解压和传输工具导致的签名损坏
代码签名是对应用包内容的加密哈希,包含其目录结构、符号链接和扩展属性。如果包内任何内容在签名后发生改变,签名就不再匹配,验证就会失败。以下几种日常操作可能悄悄破坏一个应用包:
- 不保留符号链接或解压时破坏包结构的第三方归档工具。
- 通过工具或文件系统进行文件传输(某些网络共享、特定云同步客户端、FAT/exFAT USB 驱动器)可能会剥离扩展属性或破坏符号链接。
- 手动编辑
.app包内的任何内容,哪怕只是重命名一个文件。
发生这种情况时,即使原始下载完好无损,你也会看到「已损坏」。此时的修复方案不只是移除隔离属性——而是从官方来源重新下载应用,并使用 Safari 下载(Safari 能正确处理应用包),或者对于开发者自己的构建版本,在本地重新签名(后文有说明,并附带注意事项)。
Apple Silicon 与 Intel 二进制文件
如果你使用的是 Apple Silicon Mac(M1 至最新 M 系列),尝试运行仅支持 Intel 的应用时,macOS 需要 Rosetta 2 进行转译。在全新系统上 Rosetta 可能尚未安装,Apple 已表示 Rosetta 2 正在逐步退出历史舞台——到 macOS 27 时代,其可用性将发生重大变化。无法被转译的 Intel 二进制文件,或缺少 arm64 分片的损坏通用二进制文件,都可能以看似文件损坏的启动失败形式表现出来。你可以检查二进制文件包含哪些架构:
lipo -archs /Applications/ExampleApp.app/Contents/MacOS/ExampleApp
通用应用的输出:
x86_64 arm64
如果在 Apple Silicon Mac 上只看到 x86_64,你需要 Rosetta 2(或原生版本)。如果在 Intel Mac 上只看到 arm64,该版本根本无法在此运行。关于 Rosetta 退役的更多信息,请参阅我们的 Rosetta 2 终止支持完整指南。
系统时钟错误导致公证验证失败
这一点常常让人措手不及。证书验证和公证票据检查具有时效性——它们会确认签名证书在特定时刻有效、票据未过期。如果你 Mac 的日期和时间严重错误(旧硬件上时钟电池耗尽、手动设置了错误日期,或时区配置出错),这些检查就会失败,进而产生「无法验证不含恶意软件」甚至「已损坏」的提示。务必检查时钟:
date
如果日期不对,请在系统设置 > 通用 > 日期与时间中修正,并启用「自动设置日期和时间」,然后再次尝试打开应用。这听起来微不足道,但确实是一个真实存在、可重复出现的原因。
安全修复流程:优先使用隐私与安全性
牢记这个黄金法则:在动用 Terminal 之前,先尝试官方的、侵入性最小的方法。 在 Tahoe 中,这意味着使用系统设置中的「仍要打开」流程。它只批准一个特定的应用,Gatekeeper 对其他所有应用依然全面生效,并为你创造一个主动确认你信任该软件的时机。
第一步:将应用移至 /Applications
如果应用还在「下载」文件夹或从挂载的 DMG 运行,先将 .app 拖入 /Applications 文件夹。单单这一步就能清除 App Translocation,并在你做任何其他操作之前解决很多「已损坏」的情况。之后记得退出磁盘镜像。
第二步:尝试打开,然后前往隐私与安全性
双击应用。当拦截对话框出现时,点击取消(不要点击「移到废纸篓」)。然后前往:
系统设置 > 隐私与安全性,向下滚动到安全性部分。如果 macOS 最近拦截了该应用,你会看到类似「'ExampleApp' 已被阻止以保护你的 Mac」的提示,旁边有一个**「仍要打开」**按钮。
第三步:点击「仍要打开」并完成身份验证
点击**「仍要打开」**。macOS 会要求你使用 Touch ID 或密码进行身份验证,然后显示最后一次确认。确认后,应用启动。此后,该应用会进入你的批准列表,正常打开。
这就是替代旧版右键 → 打开技巧的新流程。在 macOS 14 Sonoma 及更早版本中,你可以右键单击应用,选择「打开」,获得一次性绕过对话框。Apple 从 macOS 15/26 世代开始专门移除了这个快捷方式,以防止用户不假思索地绕过 Gatekeeper。隐私与安全性路径有意设计得更繁琐——这种阻力是一个功能特性。关于此版本安全设置的更多变化,我们的 macOS Tahoe 安全与隐私完整指南 详细介绍了重新设计的面板。
重要提示: 如果应用显示的是严厉的「已损坏」对话框,而你在隐私与安全性中找不到「仍要打开」按钮,这通常意味着签名确实已损坏(而非仅仅未公证)。这种情况下请先从官方来源重新下载;如果依然失败,下面的 Terminal 方法是你的下一步。
Terminal 修复方法(及其真实代价)
当 GUI 路径无法提供「仍要打开」按钮时,Terminal 是下一个工具。以下所有操作仅在指向你信任且来源可靠的特定应用时才是安全的。这些命令会为你所指向的目标降低安全性——这既是它们的全部意义,也是它们的全部风险。
行动前先检查
务必先看再动。列出扩展属性:
xattr -l /Applications/ExampleApp.app
如果 com.apple.quarantine 存在,隔离属性是阻塞的原因之一。如果不存在,移除它没有任何帮助,问题出在签名或架构上。
移除隔离属性
从单个应用中递归(-r)删除(-d)整个包的属性:
xattr -dr com.apple.quarantine /Applications/ExampleApp.app
成功时没有任何输出。现在重新启动应用;在很多情况下它会立即打开,因为 Gatekeeper 不再将其视为外部下载的文件。你可以确认属性已消失:
xattr -l /Applications/ExampleApp.app
com.apple.quarantine 那行应该已经不见了。

这个操作的实际效果及其风险: 移除隔离 xattr 会告知 Gatekeeper 不再将此应用视为来自外部世界的下载文件。对于你自己下载的合法应用,这完全没问题——你只是在确认你已经做出的信任决定。但如果你盲目地对从可疑网站、论坛链接或「破解版」应用获取的软件执行此操作,你就解除了唯一可能拦截恶意软件的检查。永远不要对整个 /Applications 目录,或任何你无法担保来源的应用运行 xattr -dr com.apple.quarantine。 善意的 Mac 用户中毒最常见的方式,正是从下载页面复制粘贴一条隔离移除命令——而那个页面就是想让你解除 Gatekeeper 的。
对损坏的包重新签名(高级操作,有重大注意事项)
如果问题是签名损坏而非隔离属性,单纯移除属性无济于事——Gatekeeper 依然会看到无效签名。有些指南建议使用临时签名强制重新签名:
codesign --force --deep --sign - /Applications/ExampleApp.app
--sign - 表示临时签名(无真实身份),--force 覆盖现有签名,--deep 递归处理嵌套代码。
请谨慎对待这个操作。 它是真正的高级操作,且经常是错误的答案:
--deep已被 Apple 在签名场景中标记为弃用,可能在复杂应用上产生微妙的错误结果;它最初是为验证便利性而设计的,而非正式的签名策略。- 临时重新签名会丢弃开发者的真实签名和公证信息。你是用自己机器的信任来担保这个应用,而不是 Apple 的。
- 如果应用包确实已损坏(真正的「已损坏」场景),对损坏内容重新签名并不能修复它。正确的做法是从官方来源重新下载干净的副本。
实际上,重新签名是开发者调试自己构建版本的工具,而非最终用户的解决方案。如果你发现自己要对一个不是自己构建的应用执行 codesign --force --deep --sign -,停下来,改为重新下载。
使用 spctl 检查 Gatekeeper 的判决
要了解 Gatekeeper 为什么不满意,可以直接询问它。详细评估一个特定应用:
spctl -a -vvv /Applications/ExampleApp.app
一个健康的已公证应用会返回类似这样的结果:
/Applications/ExampleApp.app: accepted
source=Notarized Developer ID
origin=Developer ID Application: Example Developer (AB12CD34EF)
被拦截的应用可能返回:
/Applications/ExampleApp.app: rejected
source=no usable signature
source= 这行信息非常关键——source=Notarized Developer ID 表示一切正常,source=no usable signature 表示签名损坏或缺失,而「未公证」原因的拒绝指向公证问题而非隔离属性。使用以下命令检查 Gatekeeper 的整体状态:
spctl --status
通常会输出:
assessments enabled
处理 App Store 以外的应用
绝大多数「已损坏」报告来自 Mac App Store 以外安装的应用,因此值得专门说明。App Store 应用经过审核,签名和公证均端到端完成,几乎不会触发这些对话框。来自开放网络的应用才是 Gatekeeper 发挥价值的地方。
按信任度从高到低,你的最安全来源依次为:Mac App Store、提供已公证下载的开发者官方网站,以及像 Homebrew Cask 这样通常从官方来源拉取的知名包管理器。对于随机下载镜像、付费应用的「免费」版本,以及论坛或聊天中分享的链接,请保持高度警惕。一个应用能够通过移除隔离属性运行,绝不代表它是安全的。
有一个令人警醒的提醒:公证只是一道筛查,并非绝对保障。已公证的恶意软件偶尔能通过 Apple 的自动检查。我们对 通过 Apple 有效公证分发的 MacSync 窃密木马的分析 表明,即使能干净通过 Gatekeeper 的应用也可能是恶意的。教训不是「什么都不信」,而是「来源比对话框更重要」。如果你不信任这个网站,就不要信任这个下载,无论它启动得多么顺畅。更全面的安全加固清单,请参阅我们的 Mac 安全与隐私指南。

Tahoe 与旧版 macOS 的对比变化
如果你上次处理这个问题是几年前,操作手册已经改变了。了解差异,避免踩陷阱。
右键 → 打开已被移除。 通过 macOS 14 Sonoma,右键单击应用并选择「打开」可以获得一次性绕过对话框。Apple 从 macOS 15/26 世代开始移除了这一功能,Tahoe 26.5 延续了这一做法。针对被拦截应用的唯一官方覆盖方式是系统设置 > 隐私与安全性中的「仍要打开」按钮。仍在教你右键单击打开的教程已经过时。
「任意来源」选项已隐藏。 旧版 macOS 允许你在「安全性与隐私」面板中将 Gatekeeper 设置为允许「任意来源」的应用。该单选按钮多年前已从界面中移除,在 Tahoe 中依然隐藏。你有时可以通过命令行激活类似状态,但 Apple 刻意将「信任一切」的姿态设计得难以达到,因为这非常危险。
spctl --master-disable 的效果已不如宣传所言。 许多老旧指南让你运行 sudo spctl --master-disable 来完全关闭 Gatekeeper 并让「任意来源」选项重新出现。在现代 macOS 上,该命令的效果已大打折扣:它可能报告成功,但 Gatekeeper 的防护(尤其是公证和路径转移行为)并不像在 macOS 10.14 等旧系统上那样被完全禁用。系统完整性保护和重新设计的安全架构意味着单条命令已无法干净地关闭整个子系统。将任何围绕 spctl --master-disable 构建的指南视为过时内容。
整体摩擦感更强。 Tahoe 方法的主线思想是刻意制造阻力。Apple 希望批准未经验证的应用成为一个主动的、经过身份验证的决定,在系统设置中完成,而不是一个条件反射式的右键单击。关于此特定版本的完整安全和 CVE 情况,请参阅我们的 macOS Tahoe 26.5 发布完整更新指南。
企业与 MDM 注意事项
如果你在组织中管理 Mac,你拥有普通用户没有的选项,也不应该教用户运行 xattr 命令。移动设备管理(MDM)让你可以在规模化的范围内统一部署信任,而无需逐台机器处理。你可以部署隐私偏好策略控制(PPPC)配置文件和 Gatekeeper 相关的配置文件,以预先批准特定的开发者身份,使内部分发和已批准的第三方应用无需 Gatekeeper 提示即可启动。对于内部工具,正确的长期方案是签名并公证内部构建——即使是内部工具,也应购买 Developer ID、签名并公证,使其能够原生通过 Gatekeeper,而不是要求员工解除防护。
不要轻易推送全机群的 Gatekeeper 禁用。这会将组织中的每一台 Mac 变成软目标,也正是攻击者希望看到的安全姿态。如果你还需要管理机群中登录时启动的程序,我们的 Tahoe 登录项与后台应用管理完整指南 与 Gatekeeper 策略配合使用,可以全面管控运行的内容和时机。
常见问题排查
问题:隐私与安全性中从未出现「仍要打开」按钮
解决方案: 这几乎总是意味着你看到的是严厉的「已损坏」对话框(签名损坏/缺失),而非较温和的「无法验证开发者身份」对话框——Apple 不为真正无效的签名提供 GUI 覆盖选项。首先,将应用从「下载」文件夹或 DMG 移入 /Applications,以排除 App Translocation 的可能性,然后再次尝试启动,让 macOS 记录一次新的拦截。如果按钮依然不出现,请用 Safari 从官方网站重新下载应用。如果始终下载后损坏,问题可能出在开发者的构建版本本身。作为最后手段,对于你信任的应用,可以对其执行 xattr -dr com.apple.quarantine。
问题:运行 xattr 时 Terminal 报告「Operation not permitted」
解决方案: 这是权限问题,而非语法问题。macOS 会保护某些位置,你的 Terminal 应用可能缺少完全磁盘访问权限。前往系统设置 > 隐私与安全性 > 完全磁盘访问,启用你的 Terminal(Terminal.app、iTerm 等),然后完全退出并重新启动它。同时确认你输入的路径正确——将应用拖入 Terminal 窗口可以插入其精确路径。如果应用位于受保护的位置,先将其复制到 /Applications,再在那里进行操作,可以绕过该限制。
问题:应用打开一次后,在更新后再次「损坏」或出现问题
解决方案: 这指向一个自更新应用与 App Translocation 冲突、或其更新程序中存在签名损坏的问题。确保应用位于 /Applications(而非「下载」),因为就地自更新程序在路径转移状态下会出现异常。如果应用每次更新后都会重新被隔离,更新程序可能正在通过具有隔离意识的机制重新下载应用。最彻底的修复方案是:删除应用,从官方来源下载全新副本,拖入 /Applications,通过「仍要打开」批准一次,然后让后续更新从那里运行。
问题:即使联网,也出现「无法验证不含恶意软件」
解决方案: 首先用 date 检查系统时钟——日期错误会破坏票据验证。接着确认你没有在代理、VPN 或防火墙后面,这些可能会阻止访问 Apple 的公证服务器;暂时禁用严格的 VPN 然后重试往往能解决问题。运行 spctl -a -vvv /path/to/App.app 查看精确的判决信息。如果恢复网络连接后 spctl 报告应用已接受/已公证,则最初的失败纯粹是网络/时钟问题,而非应用本身的问题。
常见问题解答
使用 xattr 移除隔离属性安全吗?
只有在指向你真正信任且来源可靠的特定应用时才安全。该命令本身不会损害你的系统;风险完全在于你将其指向什么。移除隔离属性会解除 Gatekeeper 对该应用的检查,因此对可疑软件执行此操作正是干净 Mac 被感染的方式。来自开发者官网的受信任应用:没问题。随机的「破解版」下载:绝对不行。
禁用 Gatekeeper 会导致恶意软件感染吗?
全系统禁用 Gatekeeper 会显著提高风险,是的。Gatekeeper 阻断了攻击者使用的最简单路径——让你运行未签名、未公证的代码。关闭它后,每个下载都无需检查即可运行。个人用户几乎没有理由全局禁用它;通过「仍要打开」批准单个应用即可达到你的目的,同时对其他所有内容保持防护。请保持 Gatekeeper 开启。
为什么 Terminal 在运行 xattr 时提示「operation not permitted」?
你的 Terminal 应用缺少完全磁盘访问权限,或者你的目标是受系统保护的位置。在系统设置 > 隐私与安全性 > 完全磁盘访问中授权,启用你的 Terminal,然后退出并重新启动它。通过将应用拖入 Terminal 窗口来验证路径是否正确。这是 macOS 隐私保护在正常运作,而不是你命令中的 bug。
在 Tahoe 中右键单击「打开」的技巧还有效吗?
没有。Apple 在 macOS 15/26 世代中移除了右键 → 打开的一次性绕过功能,Tahoe 26.5 延续了这一做法。打开被拦截应用的唯一官方方式是系统设置 > 隐私与安全性中的「仍要打开」按钮,并需要身份验证。任何仍推荐右键 → 打开的指南都已过时。
我的应用昨天还能用,现在却提示已损坏。为什么?
几种原因符合这个模式:开发者的签名证书被吊销、应用内更新引入了损坏或未公证的构建版本、应用在更新过程中重新被隔离,或者系统时钟漂移导致票据验证失败。首先用 date 检查时间,然后从官方来源重新下载一个干净副本并批准一次。如果问题持续出现,向开发者反馈。
「App Translocation」和隔离属性是一回事吗?
不是,尽管两者相关。隔离属性是将文件标记为已下载的标志。App Translocation 是 macOS 因为应用被隔离并从下载位置运行而触发的一种防御行为——它会从随机化的只读路径启动应用,以挫败侧载文件攻击。将应用移入 /Applications 会停止路径转移;移除隔离属性会停止标记。这是两种不同的机制,对应不同的修复方法。
结语
macOS Tahoe 上的「应用程序已损坏,无法打开」错误,绝大多数是信任问题,而非文件损坏问题。Gatekeeper、com.apple.quarantine 属性和公证机制协同工作,阻止你的 Mac 运行无法验证的代码——大多数时候,合法应用之所以触发它们,是因为隔离标志、App Translocation、粗心的解压操作导致签名损坏、架构不匹配或时钟错误。阅读对话框,判断你面临的是三种问题中的哪一种;先尝试隐私与安全性中的官方「仍要打开」路径;只有在理解其权衡之后,才动用 xattr、spctl 和 codesign。最重要的一条规则:应用的安全性来自其来源,而不是你能多顺畅地强制启动它。
更多关于正确加固 Mac 安全的内容,请继续阅读我们的 2026 年 Mac 安全与隐私指南 和 macOS Tahoe 安全与隐私完整指南。
