macOS 解决 AirDrop 传输应用“已损坏“问题,以sublime为例

问题现象

通过 AirDrop 从其他设备传输应用到 Mac 后,双击打开时提示:

复制代码
"XXX.app" 已损坏,无法打开。您应该将它移到废纸篓。

问题原因

这不是文件真的损坏了,而是 macOS 的 Gatekeeper 安全机制在作祟。

当应用通过 AirDrop、浏览器下载等方式获取时,macOS 会自动给文件打上 com.apple.quarantine(隔离)标记。对于未经 Apple 公证或签名的应用,系统会直接拒绝打开,并显示"已损坏"的误导性提示。

解决方案

方法 1:移除隔离属性(推荐)

打开终端,执行以下命令:

bash 复制代码
xattr -d com.apple.quarantine /Applications/你的应用.app

示例(以 Sublime Text 为例):

bash 复制代码
xattr -d com.apple.quarantine /Applications/Sublime\ Text.app

注意

  • 如果应用在其他位置(如 ~/Downloads),需要修改路径
  • 文件名中有空格需要用反斜杠转义(如 Sublime\ Text.app

如果提示权限不足,加上 sudo

bash 复制代码
sudo xattr -d com.apple.quarantine /Applications/Sublime\ Text.app

方法 2:右键打开(临时绕过)

  1. 在 Finder 中找到应用
  2. 按住 Control 键点击(或右键)
  3. 选择「打开」
  4. 在弹出的警告中点击「打开」

缺点:每次打开都需要这样操作,不如方法 1 彻底。

方法 3:系统设置放行

  1. 双击应用(会报错)
  2. 打开「系统设置」→「隐私与安全性」
  3. 向下滚动,找到"XXX 已被阻止"的提示
  4. 点击「仍要打开」

为什么不推荐 xattr -cr

网上很多教程使用 xattr -cr(递归清除所有扩展属性),但在新版 macOS(Ventura+)上可能会遇到:

复制代码
xattr: [Errno 1] Operation not permitted

这是因为 -c 会尝试清除所有扩展属性,包括受 SIP(系统完整性保护)保护的属性。而 -d com.apple.quarantine 只删除隔离标记,更安全且成功率更高。

扩展知识

查看文件的扩展属性

bash 复制代码
xattr /Applications/你的应用.app

如果输出包含 com.apple.quarantine,说明文件被隔离了。

批量处理多个应用

bash 复制代码
cd /Applications
for app in *.app; do
  xattr -d com.apple.quarantine "$app" 2>/dev/null
done

安全提示

⚠️ 移除隔离属性会绕过 macOS 的安全检查,请确保应用来源可信。建议:

  • 只对来自可信来源的应用使用此方法
  • 优先从官网下载或使用 Homebrew 等包管理器安装
  • 不要对来历不明的应用执行此操作

总结

遇到 AirDrop 传输应用"已损坏"的问题,一条命令即可解决:

bash 复制代码
xattr -d com.apple.quarantine /Applications/应用名.app

简单、高效、不需要关闭系统安全设置。


参考资料

相关推荐
穗余11 小时前
Mac 使用 Caps Lock 键切换输入法失灵问题解决
macos
寻道模式13 小时前
【时间之外】AI不懂Mac吗?
人工智能·macos
Qimooidea15 小时前
MacOS 平台 CAD 图纸翻译实战:从技术挑战到高效落地
macos·策略模式
一勺菠萝丶16 小时前
macOS 应用强制退出后无法再次启动:根因分析、排查方法与无重启恢复方
macos
张小姐的猫16 小时前
【Linux】多线程 —— 线程池 | 单例模式 | 常见锁
linux·运维·服务器·c++·单例模式·设计模式·策略模式
秋雨梧桐叶落莳1 天前
iOS——NSUserDefaults学习
学习·macos·ios·objective-c·cocoa
8125035331 天前
第 5 篇:MAC 地址——IP 管远方,MAC 管眼前
macos
元Y亨H1 天前
Mac 办公效率进阶笔记
macos
元Y亨H1 天前
Mac 高级程序员配置笔记 (Java & Python 篇)
macos
元Y亨H1 天前
Mac 从入门到精通:效率进阶笔记
macos