如何在 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
- 显示
HTTPEnable : 0和HTTPSEnable : 0,或者根本没有 HTTP 相关的行,说明没有启用网页代理。 - 显示
HTTPEnable : 1,同时HTTPProxy : 127.0.0.1,HTTPPort又是你的 Charles 端口(没改过就是 8888),说明 Charles 的代理还挂着。打开「系统设置 › 网络」,选你正在用的网络,点「详细信息」,再进「代理」,关掉指向本机的网页代理。 - 代理指向别的地址,说明它属于别的东西,比如公司配置或其他工具,不要动。
单独决定怎么处理 Charles 根证书
根证书和卸载是两件事。Charles 的 SSL 说明写明每份安装都会生成自己的根证书,你当初通过「Help › SSL Proxying › Install Charles Root Certificate」装进来,再在「钥匙串访问」里设成「始终信任」。
- 打算重装 Charles,还要在这台 Mac 上调试 HTTPS,就留着。
- 不再用 Charles 就删掉。一张不再使用却仍被信任的根证书,意味着持有它私钥的人可以签出这台 Mac 会接受的任意网站证书。打开「钥匙串访问」,搜索
Charles Proxy,在「证书」里选中它删除,需要改信任设置时系统会要求输入密码。
为 Charles 配置过的手机和模拟器各有一份。iPhone 上到「设置 › 通用 › 关于本机 › 证书信任设置」里关掉,再到「设置 › 通用 › VPN 与设备管理」移除描述文件,在 Mac 上移除 Charles 碰不到它们。
下面这条只读命令可以看钥匙串里还有没有 Charles 证书:
security find-certificate -a -c "Charles Proxy" | grep labl
出现带 Charles Proxy 的 labl 行,说明证书还在。没有输出,说明钥匙串里已经没有了,提示找不到该项目的报错也是同样的意思。
检查代理辅助程序
Charles 可以装一个辅助程序,这样改网络设置时不用每次都问你。下面几条只读命令可以看它在不在:
pgrep -il charles
ls -l /Library/PrivilegedHelperTools | grep -i xk72
ls /Library/LaunchDaemons | grep -i xk72
pgrep没有输出,说明 Charles 没在运行。- 两条
ls都没有输出,说明没装过 Charles 辅助程序,从没允许 Charles 改代理设置时常见这种情况。 - 出现
com.xk72.Charles.ProxyHelper,说明辅助程序还在。等 Charles 已经移除后,再在 Finder 里用管理员授权移除它,这两个文件夹里的其他东西都不要动。
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 这一行默认不勾选,所以除非你勾上它,Mole 不会加 --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 不读也不改钥匙串证书和代理设置,也不改登录项,这几样按上面的步骤自己处理。
这次检查覆盖了什么
2026 年 9 月 19 日,从磁盘映像把 Charles 5.2.1 拷进「应用程序」,打开一次,再用 Mole 1.15 的 Preview 构建卸载,没有 Homebrew 安装记录。~/Library/Application Support/Charles 列出后没有勾选,留在了磁盘上。com.xk72.charles 登录项之后仍在列表里,指向废纸篓里的应用。SSL 代理、根证书、代理辅助程序和 Homebrew cask 都没有测试。
