macOS "应用已损坏"|Gatekeeper 放行一条命令解决
问题表现
双击 OpenUtau.app,macOS 弹提示:
"OpenUtau" 已损坏,无法打开。您应该将它移到废纸篓。
或者:
无法打开 "OpenUtau-osx-x64.dmg",因为无法验证开发者。
为什么会这样
Apple 要求所有 macOS 应用必须用 Developer ID 证书签名——签名费用 99 美元/年。OpenUtau 是开源社区项目,没买这个证书,所以 macOS 的 Gatekeeper 把它标记为"不受信任"。
这不是病毒、不是恶意软件——是 Apple 收费签名机制的副作用。
解决方法:一条终端命令
打开终端(Applications → Utilities → Terminal),粘贴以下命令并回车:
xattr -rc /Applications/OpenUtau.app
-rc= 递归清除 + 强制/Applications/OpenUtau.app= 你的 OpenUtau.app 实际路径
执行完后,双击 OpenUtau.app 应该能正常打开。
如果连 dmg 都打不开
Safari 下载后 dmg 被 Gatekeeper 拦截,连挂载都不行:
xattr -rc ~/Downloads/OpenUtau-osx-x64.dmg
执行完后再双击 dmg。
如果从 GitHub 直接下载了 .app(不经过 dmg)
有些时候 OpenUtau 也会发布直接下载的 .app 压缩包,解压后放到 Applications 里:
xattr -rc /Applications/OpenUtau.app
一样,一条命令。
macOS 更新后复发
macOS 系统大版本更新(比如 Sonoma → Sequoia)可能重新检查被隔离的应用。如果更新后 OpenUtau 又打不开,再跑一次 xattr 命令就行。
替代方案(更安全但麻烦)
如果你不敢用终端命令,也可以:
- 右键 OpenUtau.app → 选"打开"(不是双击)
- 在弹出的菜单里再选一次"打开"
macOS 会弹第二次提示,点"打开"就能跳过 Gatekeeper。但这种方法每次打开都要做一遍,不如 xattr 一劳永逸。
命令原理
xattr -rc 清除的是 macOS 给文件附加的 com.apple.quarantine 属性——下载的文件自动被系统标记为"从互联网下载"(quarantine),Gatekeeper 看到这个标记就拦截。清除后系统认为是你本地自己放进去的文件,不再检查。