AI 写一个 Mac 下的卸载工具
·5 min read
macOS 上的应用卸载辅助工具:拖入任意 .app,根据 Bundle ID 与显示名称扫描常见关联文件,在列表中勾选后移入废纸篓(可先在废纸篓中恢复)。
下载地址
界面预览

特性
- 拖放分析:将应用程序包拖到窗口中的拖放区即可解析
Info.plist,读取显示名称与CFBundleIdentifier。 - 关联项扫描(在用户目录与部分系统路径中查找常见位置,避免全盘深度遍历):
- 应用程序包本体
- 偏好设置(
Preferences下对应 plist) - 保存的应用状态、Caches、Application Support、Logs、WebKit 等目录下以 Bundle ID 命名的条目
- 沙盒容器(
Containers) - 崩溃报告、诊断报告(
.ips) - 在 Application Support / Caches / Logs 等目录下按名称与 Bundle ID 片段做的浅层名称匹配
- 部分应用可能写入的
/var/log下匹配项
- 选择性卸载:每项可单独勾选;支持「全部保留」「全部卸载」快捷操作。
- 安全删除:删除操作使用系统废纸篓 API,不是
rm,误删可在废纸篓中还原。 - 图形界面:基于 egui/eframe,带中文界面与现代化深色主题;可打包为
.app,从访达双击启动(不依赖终端窗口)。
说明:扫描结果属于启发式列表,无法保证覆盖某应用的全部残留;卸载前请自行确认路径。若应用数据在其他自定义位置,不会自动出现。
系统要求
- macOS(建议 11.0 及以上,与打包脚本中的最低版本一致)
- 若从源码构建:已安装 Rust(rustup)与 Xcode 命令行工具(含
iconutil、sips,用于生成.icns)
安装
方式一:自行从源码构建(命令行二进制)
cd macclean # 本仓库根目录
cargo build --release
可执行文件:target/release/macclean。适合开发调试;若用 cargo run 启动,进程会挂在当前终端上。
方式二:打包为 macOS 应用程序(推荐日常使用)
在项目根目录执行:
bash packaging/macos/bundle.sh
脚本会:
cargo build --release- 根据
assets/app_icon.png生成AppIcon.icns - 在项目根目录生成
MacClean.app
将 MacClean.app 拖入「应用程序」文件夹即可。从启动台或访达双击打开,一般不会弹出终端窗口。
若系统提示来自未认证开发者:可在访达中对
MacClean.app右键 → 打开,或在「系统设置 → 隐私与安全性」中允许运行。自行签名或公证可进一步减少提示(需 Apple 开发者账号)。
使用说明
- 启动 MacClean(
.app或命令行二进制均可)。 - 将要分析的应用
.app拖入窗口中的拖放区(或拖到窗口上,行为以当前版本为准)。 - 等待列表加载:上方会显示应用显示名与 Bundle ID;下方表格列出扫描到的路径、类别与估算大小。
- 勾选需要移入废纸篓的项目(默认多为全选,可按需取消)。
- 点击 「卸载选中项」,等待进度完成。
- 需要时到 废纸篓 中检查或恢复文件。
提示
- 若某次扫描结果为空或偏少,可能是该应用未在常见路径留下可识别文件,或名称与 Bundle ID 与启发式规则不匹配。
- 卸载系统组件或共享库相关路径前请格外谨慎。
开发
cargo build # 调试构建
cargo build --release
cargo test # 若有测试
打包相关文件:
packaging/macos/Info.plist— 应用元数据与图标名packaging/macos/bundle.sh— 一键生成MacClean.appassets/app_icon.png— 窗口与图标集所用源图
许可证
见仓库根目录 LICENSE(AGPL-3.0)。