如何在 Mac 上卸载 Charles
Charles 伸进 macOS 的地方比它自己的文件夹多:运行时会打开系统代理设置,可能为此装过一个特权辅助程序,用过 SSL 代理的话,还在钥匙串里装过并信任了一张 Charles 根证书,移除应用不会顺手处理这三样。按 Charles 常见问题的说法,Charles 的设置和授权都存在 ~/Library/Preferences/com.xk72.charles.config,以后还想用这套设置,先把这个文件复制到别处。这份指南覆盖 Charles 的磁盘映像版和 Homebrew cask charles。
先正常退出 Charles
Charles 的配置说明提到,它在启动时设置 macOS 代理,退出时再改回去。所以从 Charles 菜单正常退出,不要强制退出,让它有机会把代理设置恢复。之后:
- 在「活动监视器」里搜索 Charles,确认相关进程都已退出。
- 在 Finder 的「应用程序」里把 Charles 移到废纸篓。
- 打开「系统设置 › 通用 › 登录项与扩展」。本次实测中 Charles 注册过一个
com.xk72.charles项目,应用进了废纸篓之后它仍在列表里,还在的话就在这里关掉。
确认没有代理还指着 Charles
Charles 崩溃或被强制退出时,系统可能继续把流量发给一个已经不存在的代理,网页就打不开了。查看当前的代理设置:
scutil --proxy
- HTTP 与 HTTPS 分别核对,
HTTPEnable控制 HTTP,HTTPSEnable控制 HTTPS,两项都关闭或不存在,只说明这份输出里没有启用这两种明确指定的代理,不能排除自动代理配置或其他网络工具。 - 某项启用时,把它的
HTTPProxy、HTTPPort或HTTPSProxy、HTTPSPort与当时为 Charles 设置的地址和端口核对,常见值是127.0.0.1:8888,仅凭本机地址不能认定属于 Charles。只有确认对应项由 Charles 留下且地址、端口相符时,才打开「系统设置 › 网络」,选当前网络,再进「详细信息 › 代理」,关闭这一项对应的 HTTP 或 HTTPS 代理。 - 其他代理都保留,包括别的本机代理、公司配置和自动代理设置。
单独决定怎么处理 Charles 根证书
根证书和卸载是两件事。Charles 的 SSL 说明写明每份安装都会生成自己的根证书,你当初通过「Help › SSL Proxying › Install Charles Root Certificate」装进来,再在「钥匙串访问」里设成「始终信任」。
- 打算重装 Charles,还要在这台 Mac 上调试 HTTPS,就留着。
- 不再用 Charles 就删掉。一张不再使用却仍被信任的根证书,意味着持有它私钥的人可以签出这台 Mac 会接受的任意网站证书。打开「钥匙串访问」,搜索
Charles Proxy,在「证书」里选中它删除,需要改信任设置时系统会要求输入密码。
为 Charles 配置过的手机和模拟器各有一份。iPhone 上先打开「设置 › Wi-Fi」,点当前网络旁的信息按钮,再打开「配置代理」,若指向当时使用 Charles 的 Mac 和端口,就关闭这个代理,公司或其他代理配置不动。再到「设置 › 通用 › 关于本机 › 证书信任设置」关闭 Charles 证书,到「设置 › 通用 › VPN 与设备管理」移除它的描述文件,在 Mac 上移除 Charles 碰不到它们。
下面这条只读命令可以看钥匙串里还有没有 Charles 证书:
security find-certificate -a -c "Charles Proxy" | grep labl
出现带 Charles Proxy 的 labl 行,说明证书还在。提示找不到该项目,说明搜索范围内没有匹配证书,其他错误或只是不显示这一行,不能证明每个钥匙串都没有 Charles 证书,在「钥匙串访问」里核对相关钥匙串。
检查代理辅助程序
Charles 可以装一个辅助程序,这样改网络设置时不用每次都问你。下面几条只读命令可以看它在不在:
pgrep -il charles
ls -l /Library/PrivilegedHelperTools | grep -i xk72
ls /Library/LaunchDaemons | grep -i xk72
pgrep没有输出,说明 Charles 没在运行。- 两条
ls没有匹配行且没有报错,只说明这两个文件夹没显示匹配的文件名,不能证明过去从没装过辅助程序。 - 出现
com.xk72.Charles.ProxyHelper时先核实归属,停止前查看这个准确的系统任务:
launchctl print system/com.xk72.Charles.ProxyHelper
程序指向 /Library/PrivilegedHelperTools/com.xk72.Charles.ProxyHelper 时,退出 Charles,先停止这个已核实的任务,再删除辅助程序:
sudo launchctl bootout system/com.xk72.Charles.ProxyHelper
停止成功后,在访达按 Shift + Command + G 打开 /Library/PrivilegedHelperTools,以管理员授权只把 com.xk72.Charles.ProxyHelper 移到废纸篓。/Library/LaunchDaemons 中的 plist 先打开核对,只有 Label 和程序指向同一个 Charles 辅助程序才移除,其他 xk72 文件不动。再次运行 launchctl print,报服务不存在说明这个准确任务已不再注册,权限错误仍需处理,也在活动监视器里核对辅助进程。Homebrew 安装版可用下方普通卸载,它已经会停掉这个辅助程序。
Charles 的数据放在哪里
| 位置 | 里面是什么 | 如何处理 |
|---|---|---|
~/Library/Preferences/com.xk72.charles.config |
Charles 的全部设置和授权 | 想恢复这套设置,移除前先复制一份 |
~/Library/Application Support/Charles |
应用支持数据 | 看过内容,不再需要再移除 |
~/Library/Preferences/com.xk72.Charles.plist |
应用的 macOS 偏好设置 | 退出应用后可以移除 |
~/Library/Saved Application State/com.xk72.Charles.savedState |
窗口恢复状态 | 退出应用后可以移除 |
保存下来的会话和导出的流量是你自己选位置存的文件,不算应用数据。
用 Homebrew 安装时
charles 这个 cask 的普通卸载步骤会停掉 com.xk72.Charles.ProxyHelper,删掉 /Library/PrivilegedHelperTools/com.xk72.Charles.ProxyHelper,再执行一个从钥匙串删除 Charles 证书的步骤。所以即使不带 --zap,brew uninstall --cask charles 也会删掉根证书,重装之后要通过 Help 菜单重新安装并信任。zap 清单再加上 ~/Library/Application Support/Charles、com.xk72.charles.config、com.xk72.Charles 偏好设置文件和窗口恢复状态,所以 brew uninstall --cask --zap charles 会连设置和授权一起移走。
想保留设置,就不跑 zap:
brew uninstall --cask charles
只有 zap 清单里每条路径都在 ~/Library 下、没有碰到你没勾选的行、也没有被其他已装应用认领时,Mole 才加 --zap。~/Library/Application Support/Charles 这一行在关闭「卸载时一并移除数据和配置」时不勾选,保留未勾选状态会阻止 zap。Mole 移除 Homebrew 安装的版本时,普通卸载步骤照样会跑,删证书那一步也在其中。你自己在终端敲的 brew 命令不会看 Mole 的勾选。
Mole 会列出什么
关闭「卸载时一并移除数据和配置」时,Mole 对磁盘映像版 Charles 的处理如下:
~/Library/Application Support/Charles会列出,但默认不勾选。com.xk72.Charles偏好设置文件和窗口恢复状态默认勾选。- 从 Homebrew zap 清单取来的
~/Library/Preferences/com.xk72.charles.config会列出,但默认不勾选,不勾它设置就会留着。 - 如果存在
/Library/PrivilegedHelperTools/com.xk72.Charles.ProxyHelper,它会列出,但默认不勾选。 - Mole 不读也不改钥匙串证书和代理设置,也不会编辑 macOS 后台任务数据库,剩余登录项按上面的步骤在系统设置里核对。
开启「卸载时一并移除数据和配置」后,符合条件的本地支持文件夹和设置行可能预先勾选,要保留就取消勾选,特权辅助程序不在这个用户目录数据选项的范围内,仍按上面的独立服务移除流程处理。
这次检查覆盖了什么
2026 年 9 月 19 日,从磁盘映像把 Charles 5.2.1 拷进「应用程序」,打开一次,再用 Mole 1.15 的 Preview 构建卸载,没有 Homebrew 安装记录。~/Library/Application Support/Charles 列出后没有勾选,留在了磁盘上。com.xk72.charles 登录项之后仍在列表里,指向废纸篓里的应用。SSL 代理、根证书、代理辅助程序和 Homebrew cask 都没有测试。
