Skip to content

Codex++ macOS 打开提示无效或损坏

这篇文档用于处理 macOS 安装 Codex++ 后,打开时提示「无效」「已损坏」「无法打开,您应该将它移到废纸篓」等问题。

这类问题通常不是应用文件真的损坏,而是 macOS 对下载应用附加了 com.apple.quarantine 隔离属性,或者 Gatekeeper 对签名、来源校验未通过。处理思路是:清理旧安装和缓存 → 重新安装 → 移除隔离属性 → 本机重签名 → 按架构启动

适用场景

  • Codex++ 安装后无法打开。
  • macOS 提示应用无效、损坏,或建议移到废纸篓。
  • 删除重装后仍然打不开。
  • 应用包名存在下面两种情况之一:
    • /Applications/Codex++.app
    • /Applications/Codex++ 管理工具.app

操作前确认

下面命令会删除 Codex++ 应用和本机用户缓存。执行前请确认没有需要保留的本地配置、会话或工作数据。

处理步骤

1. 删除旧 App

先删除 /Applications 里的旧应用,避免旧签名、旧隔离属性继续影响新安装。

bash
sudo rm -rf "/Applications/Codex++.app"
sudo rm -rf "/Applications/Codex++ 管理工具.app"

2. 清理用户缓存和配置

这一步很关键。只删 App 不清缓存时,macOS 或应用自身可能继续读取旧状态。

bash
rm -rf "$HOME/Library/Application Support/Codex++"
rm -rf "$HOME/Library/Caches/Codex++"

路径说明

如果你的 Codex++ 使用了其它应用名称,可以在 ~/Library/Application Support/~/Library/Caches/ 下按实际名称查找对应目录。

3. 重新安装 Codex++

重新把 Codex++ 放入 /Applications 目录。

建议安装完成后先不要直接双击打开,先执行下面的隔离属性和签名处理。

4. 递归清理隔离属性

-r 表示递归处理整个 .app 包,适合应用包内部也带有隔离属性的情况。

bash
sudo xattr -rd com.apple.quarantine "/Applications/Codex++.app"
bash
sudo xattr -rd com.apple.quarantine "/Applications/Codex++ 管理工具.app"

5. 本机重签名

使用 ad-hoc 签名重新签整个 App 包。--deep 会处理应用包内的组件。

bash
sudo codesign --force --deep --sign - "/Applications/Codex++.app"
bash
sudo codesign --force --deep --sign - "/Applications/Codex++ 管理工具.app"

6. Intel 架构方式启动

如果当前应用需要 Intel 架构运行,可以通过 arch -x86_64 启动。

bash
arch -x86_64 "/Applications/Codex++ 管理工具.app/Contents/MacOS/Codex++ 管理工具"

Apple Silicon 说明

在 Apple Silicon 设备上使用 arch -x86_64 时,需要系统已安装 Rosetta 2。如果未安装,按系统弹窗安装即可。

一键执行版

确认已经重新安装 App 后,可以按实际应用名称选择执行。

Codex++.app
bash
sudo xattr -rd com.apple.quarantine "/Applications/Codex++.app"
sudo codesign --force --deep --sign - "/Applications/Codex++.app"
open "/Applications/Codex++.app"
Codex++ 管理工具.app
bash
sudo xattr -rd com.apple.quarantine "/Applications/Codex++ 管理工具.app"
sudo codesign --force --deep --sign - "/Applications/Codex++ 管理工具.app"
arch -x86_64 "/Applications/Codex++ 管理工具.app/Contents/MacOS/Codex++ 管理工具"

完整重装排障版

如果已经多次打开失败,建议走完整清理流程。

bash
sudo rm -rf "/Applications/Codex++.app"
sudo rm -rf "/Applications/Codex++ 管理工具.app"
rm -rf "$HOME/Library/Application Support/Codex++"
rm -rf "$HOME/Library/Caches/Codex++"

重新安装 Codex++ 后,再执行:

bash
sudo xattr -rd com.apple.quarantine "/Applications/Codex++.app"
sudo codesign --force --deep --sign - "/Applications/Codex++.app"
sudo xattr -rd com.apple.quarantine "/Applications/Codex++ 管理工具.app"
sudo codesign --force --deep --sign - "/Applications/Codex++ 管理工具.app"
arch -x86_64 "/Applications/Codex++ 管理工具.app/Contents/MacOS/Codex++ 管理工具"

常见问题

为什么要用 xattr -rd

macOS 会给从网络下载的文件附加 com.apple.quarantine 隔离属性。普通删除单个属性可能只处理外层文件,-r 可以递归处理 .app 包内部文件,排查更彻底。

为什么要重新签名?

当应用包内容、签名状态或来源校验不满足 macOS 要求时,Gatekeeper 可能阻止启动。codesign --force --deep --sign - 会使用本机 ad-hoc 签名重新签应用包,适合本机自用排障。

为什么还需要清缓存?

Codex++ 可能在用户目录写入配置、缓存或旧状态。旧状态异常时,只重签 App 不一定能恢复,所以建议完整排障时同步清理:

bash
$HOME/Library/Application Support/Codex++
$HOME/Library/Caches/Codex++

提示命令找不到或路径不存在怎么办?

先确认 App 实际名称:

bash
ls /Applications | grep "Codex"

如果名称不同,把命令里的 /Applications/Codex++.app/Applications/Codex++ 管理工具.app 替换成实际路径。

Released under the MIT License.