Mac卸载软件需先终止进程、再删.app,并手动清理~/Library下Application Support/Preferences/Caches/Logs/Containers五大路径及~/.隐藏文件夹,优先使用官方卸载器。

Mac 上只拖.app到废纸篓,90% 的软件都会留下残留——com.google.Chrome.plist、~/Library/Application Support/Zoom、com.zoom.us缓存目录,这些不清理,重装后设置照旧,磁盘空间悄悄被占,甚至引发新版兼容冲突。
先杀进程再删.app,否则文件被锁删不干净
很多应用(比如 Slack、Docker、Microsoft AutoUpdate)后台常驻进程会锁定其自身文件,直接拖.app进废纸篓会失败,或弹出“文件正在使用中”错误。
- 打开“活动监视器”,顶部搜索栏输入软件名(如
Slack),选中所有相关进程(包括Slack Helper、Slack Helper (GPU)等),点击左上角“X”→“强制退出” - 确认无残留进程后,再去“访达”→“应用程序”里右键拖走
Slack.app,而不是边运行边删 - 特别注意:某些应用(如 Parallels Desktop)会注册内核扩展(kext),必须先停用再删,否则下次开机可能报错或卡在启动阶段
手动清理 ~/Library 四大关键路径
macOS 把用户级配置全扔在隐藏的 ~/Library 下,图形界面卸载完全不碰这里。不进这个目录,等于没卸载。
-
~/Library/Application Support/:删整个同名文件夹,例如删掉Adobe、Notion、zoom.us(不是Zoom) -
~/Library/Preferences/:找com.*.plist文件,比如com.spotify.client.plist、com.microsoft.autoupdate.plist;别手抖删错com.apple.*开头的系统文件 -
~/Library/Caches/:删对应缓存目录,常见命名有com.google.Chrome、org.mozilla.firefox、zoom.us -
~/Library/Logs/:删软件名匹配的日志目录,如Slack、Docker、VMware Fusion;~/Library/Containers/也要扫一眼,沙盒应用(如 App Store 版微信)的完整数据在这里
优先调用软件自带卸载器,别跳过这步
Adobe、VMware、Parallels、Microsoft 365、Cisco Webex 这类专业软件,安装时就埋了专用卸载程序,它能删 LaunchDaemon、登录项、证书、服务配置——手动根本找不到。
- 去“访达”→“应用程序”里翻一翻,找名字带
Uninstaller或Remove的程序,比如Adobe Creative Cloud Cleaner Tool、Parallels Uninstaller - 没有独立卸载器?试试进应用菜单栏,有些会在
Zoom→Check for Updates…旁边藏个Uninstall Zoom选项 - 若原安装包还在(比如
VMware-Fusion-13.5.0-22478677.dmg),双击挂载后运行里面的Uninstall VMware Fusion,比任何第三方都准
终端命令慎用,sudo uninstall 并不通用
网上流传的 sudo uninstall file:///Applications/AppName.app 命令,仅对极少数用 Apple pkg 安装、且打包时嵌入了 BOM(Bill of Materials)清单的软件有效,比如部分 Cisco 或 Oracle 工具。对绝大多数 .app 直接无效,还可能报 command not found。
- 真要用终端,更可靠的是组合操作:
killall -u $USER "AppName"杀进程 +rm -rf /Applications/AppName.app删主程序 + 手动rm -rf上述 Library 路径下的对应项 - 别盲目复制粘贴网上“一键清理脚本”,尤其含
rm -rf ~或通配符*的,删错~/Library/Keychains/可能导致所有密码丢失 - 第三方工具如
AppCleaner(免费)可作为辅助扫描器,但它识别逻辑依赖文件名和签名,对改名或自定义路径安装的软件容易漏判
最易被忽略的是:某些应用(如 Docker Desktop、Obsidian 插件市场)会在 ~/ 根目录下建隐藏文件夹(~/.docker、~/.obsidian),这些不属于 Library 体系,但同样顽固。卸载前最好用 find ~ -name "*zoom*" -maxdepth 2 2>/dev/null 快速兜底扫一遍。

















