多数情况并非文件真损坏,而是系统因证书过期、隔离属性、时间校验或安全策略主动拦截;可依次尝试清除quarantine属性、gatekeeper临时放行、修复系统时间、强制挂载等可逆操作。

Mac下载的dmg安装文件双击后提示“已损坏,无法打开”或根本无反应,多数情况并非文件真损坏,而是系统因证书过期、隔离属性、时间校验或安全策略主动拦截——这些拦截可逆且无需重下文件。
先确认是否真损坏
右键点击.dmg文件 → 选择“显示简介” → 查看“通用”标签页中“大小”是否为0字节或明显小于官网标注值。若大小异常,直接删掉重下;若大小正常,说明是系统拦截,继续下一步。
打开“访达”,进入“下载”文件夹 → 找到该.dmg文件 → 拖入终端窗口 → 输入命令:hdiutil verify 空格后回车。若返回“verified CRC32 $XXXX”即校验通过,证明镜像结构完好;若报“checksum error”才需重下。
清除quarantine隔离属性(最常用)
方法一:终端一键清除
打开终端 → 输入 sudo xattr -rd com.apple.quarantine 空格 → 将.dmg文件直接拖入终端 → 按回车 → 输入管理员密码(输入时无显示,输完直接回车)。
这一步专治Safari/Chrome下载后被自动打上隔离标签导致的“已损坏”假警报。macOS 13及以上系统对quarantine更敏感,此操作成功率超90%。
方法二:针对已挂载但.app打不开的情况
若.dmg能挂载但拖进“应用程序”后的.app双击报错,把该.app文件拖进终端,执行:sudo xattr -rd com.apple.quarantine /Applications/xxx.app。注意路径必须准确,【/Applications/xxx.app中间不能有空格,否则命令失败】。
绕过Gatekeeper临时放行
第一步:打开“系统设置” → “隐私与安全性” → 往下滑动到“安全性”区域。
第二步:找到灰色提示文字,例如“xxx.dmg被阻止,因为它来自身份不明的开发者”。
第三步:点击右侧出现的“仍要打开”按钮 → 输入当前用户密码确认。
这一步仅对本次拦截生效,不修改全局策略,适合只想装一个软件且不愿调系统设置的用户。若没看到该提示,说明Gatekeeper未触发拦截,别在此处浪费时间。
修复系统时间偏差(旧版软件专用)
旧版.dmg(如2018年前发布的开发工具、老版本Adobe套件)常因签名证书过期被拒。macOS会用当前系统时间校验证书有效期,一旦时间超过证书截止日就判“损坏”。
① 断开Wi-Fi和网线,防止NTP自动同步时间;
② 打开终端 → 输入命令:sudo date -u 20201231(将系统时间设为UTC 2020年12月31日0点)→ 回车 → 输入密码;
③ 双击.dmg文件挂载安装;
④ 安装完毕后,重新连网,系统会自动校正时间。这一步【必须断网操作,否则命令无效】。
强制挂载损坏提示的DMG
当双击无反应或弹窗报“无法挂载”时,终端命令可跳过校验强行加载:
打开终端 → 输入 hdiutil attach -noverify -ignorebadchecksums 空格 → 将.dmg文件拖入终端 → 回车。
成功后访达会自动打开挂载卷。此法适用于CRC轻微错误或镜像头信息异常,但不修复文件本体——若挂载后内部.app仍打不开,需回到上一步清除quarantine属性。











