常见提示:“已损坏,无法打开” / “因为来自身份不明的开发者” / 第一次启动直接弹出安全警告。
❗ 产生原因
类型 | 说明 | 是否危险 |
---|---|---|
Gatekeeper 限制 | 未签名 / 签名失效 | 否(若来源可信) |
下载损坏 | 不完整 / 被篡改 | 需重新下载 |
解压导致属性丢失 | 第三方解压工具破坏权限 | 重新解压 |
Quarantine 标记 | macOS 给来自网络文件自动加的隔离属性 | 可移除 |
✅ 推荐标准流程(最安全)
- 系统设置 → 隐私与安全性 → 允许该 App。
- 仍失败:手动移除隔离 + 重建签名缓存:
sudo xattr -dr com.apple.quarantine /Applications/ClashX.app
sudo codesign --verify --deep --strict /Applications/ClashX.app 2>&1 | grep -i "code object" || echo "签名结构正常或无需验证"
open /Applications/ClashX.app
🛠 进阶(一次性彻底修)
如遇持续报“已损坏”可重置 Gatekeeper 信任:
sudo spctl --master-disable # 暂时允许任何来源(显示“任何来源”)
sudo xattr -cr /Applications/ClashX.app
open /Applications/ClashX.app # 测试能否启动
sudo spctl --master-enable # 及时恢复
🔎 完整性校验
下载后执行:
shasum -a 256 ClashX.dmg
与官网 / 发布页 SHA256 对比;不一致即重新下载。
🧼 清理后重装
rm -rf ~/Library/Preferences/com.clashx.*
rm -rf ~/Library/Application\ Support/clash*
(若只想保留配置,先备份 ~/.config/clash/
或 App 内导出的 YAML。)
💡 Apple Silicon 注意
- 建议优先使用 arm64 构建。
- Rosetta 仅在无原生版本时启用。
🧩 典型错误与解决
提示 | 处理 |
---|---|
“无法验证开发者” | 系统设置中点允许或右键打开一次 |
“已损坏” | 移除 quarantine,重新验证签名 |
打开后闪退 | 换最新版本 / 查看崩溃日志 Console.app |
长期卡验证 | 断网再打开一次 → 成功后再联网 |
🔁 最终排查清单
- 换浏览器重新下载(避免缓存)。
- 校验哈希。
- 清除 quarantine。
- 首次用“右键 → 打开”。
- 仅在必要时临时禁用 Gatekeeper,之后务必恢复。
仍失败:附上 xattr -l
输出 + codesign -dv
信息再求助,可快速确认问题点。