如何在 Mac 上彻底卸载应用,又不误删数据
结构简单的应用拖进废纸篓,通常就卸载得差不多了,但 VPN、驱动、虚拟化工具等软件还会安装辅助程序、系统扩展、登录项或共享容器,卸载时要移除软件本身,同时保住文档和其他应用仍在使用的数据。
普通应用可以先走这条最短路径:保存工作并退出应用,打开 Finder › 应用程序,选择 文件 › 移到废纸篓。先不要清空废纸篓,确认相关文件、其他应用、设备和同步仍正常后再清空。只要应用带厂商卸载器、驱动、系统扩展或后台服务,就先不要这样做。
先判断该用 Finder 还是厂商卸载器
VPN、杀毒软件、音频驱动、虚拟化软件、云同步客户端、输入设备工具,以及带系统扩展、特权辅助程序或授权组件的软件,都优先使用厂商卸载器。普通独立应用且没有厂商流程时,才使用 Finder 快速路径。
为什么拖进废纸篓后仍有残留
.app 是应用主体,运行后产生的偏好、缓存、支持文件和后台项目会写到其他目录,删除应用包不会带走这些内容。
小型应用可能只留下几个偏好文件,浏览器、游戏、开发工具和媒体应用则可能留下数 GB,大小不能说明能否删除,其中可能有缓存,也可能有配置、项目、消息、插件和离线内容。
会改动系统的软件,优先使用厂商卸载器
VPN、杀毒软件、音频驱动、虚拟化软件、云同步客户端、输入设备工具和带系统扩展的应用,更适合交给厂商卸载器,因为只有它知道停用扩展、卸载特权服务和清理安装凭据的完整顺序。
开始前导出设置或本地数据,并检查订阅、设备授权是否要另外解除,Apple 的卸载应用说明也建议优先使用自带卸载器,并提醒删除应用不会取消订阅,也不会删除用它创建的文档。
应用仍在使用时怎么办
先正常退出,让应用保存状态并关闭数据库。没有响应时,可打开 Apple 菜单 › 强制退出;强制退出可能丢失尚未保存的内容。Finder 仍提示应用正在使用时,重启后在重新打开应用前再试;如果问题依旧,Apple 的Finder 卸载说明建议进入安全模式。持续自动启动的辅助进程,往往也说明应该回头查找厂商卸载器,而不是猜测要删哪个进程。
删除应用、文档和订阅是三件事
删除应用和处理文档、订阅是三件事。用应用创建的项目可能在「文稿」、iCloud Drive、外置磁盘或自定义目录;应用支持目录里也可能有你唯一的数据库和配置。订阅不会因为应用被删而取消。根据 Apple 的订阅说明,App Store 订阅需要打开 App Store › 你的姓名 › 账户设置 › 订阅 › 管理,再单独取消;向厂商购买的订阅则在厂商账户中处理。
应用残留通常藏在哪里
在 Finder 中按住 Option 再打开「前往」菜单,才能进入当前用户的「资源库」。也可以使用「前往文件夹」,Apple 的路径说明介绍了这两种方法。常见位置有:
~/Library/Application Support/:支持数据,常是最大的残留~/Library/Caches/:通常可以重建的缓存~/Library/Preferences/:.plist设置文件~/Library/Containers/和~/Library/Group Containers/:沙盒数据与共享容器~/Library/HTTPStorages/:部分应用的网站和网络存储~/Library/Logs/:应用日志~/Library/Saved Application State/:窗口和会话状态~/Library/LaunchAgents/:登录后运行的后台代理
与系统结合较深的软件还可能在顶层 /Library 中安装内容,它会影响所有用户,更不能按名称批量删除。群组容器可能被同一开发者的多个应用和扩展共用。Apple 的App Group 文档说明了这种共享关系,只有识别出所有参与者并确认数据去向后,才考虑移除。
用 Bundle ID 查找,而不是只看应用名称
macOS 经常用 Bundle ID 而不是应用显示名来命名文件,比如 com.spotify.client,所以先取得标识符:
osascript -e 'id of app "Spotify"'
mdls -name kMDItemCFBundleIdentifier -r /Applications/Spotify.app
再把 Bundle ID 和厂商名作为搜索线索,在个人资源库里过滤一遍:
find ~/Library -maxdepth 4 \( -iname "*spotify*" -o -iname "*com.spotify*" \) -print 2>/dev/null
搜索结果只是候选项,要逐项检查内容、所属应用和用途,删除偏好设置并非卸载必需步骤,还会让以后重装时无法沿用旧设置,占用很小时可以保留。
检查登录项和扩展
打开 Apple 菜单 › 系统设置 › 通用 › 登录项与扩展,检查「登录时打开」、后台活动和各类扩展。Apple 的设置说明列出了当前控制项。普通残留登录项可以先关闭并验证,但系统扩展和驱动应由厂商流程停用。Apple 的系统扩展文档说明了由所属应用停用并在需要时重启的流程。不要根据 plist 文件名猜测 launchd 项的所有者。
如何手动彻底卸载
- 导出重要数据,确认近期备份可用
- 查看厂商说明,应用带辅助程序、扩展、驱动或授权状态时,使用厂商卸载器
- 退出应用及其可见辅助进程
- 简单应用先把
.app移到废纸篓,再检查与 Bundle ID 和厂商精确匹配的文件,区分缓存、配置、项目、数据库与共享容器 - 在 系统设置 › 通用 › 登录项与扩展 中检查剩余登录项;系统扩展仍交给厂商流程
- 只有厂商明确要求或进程仍被占用时才重启,然后测试相关应用、文件类型、设备和同步功能
- 让删除内容在废纸篓里保留一段验证时间。误删时选择项目并执行 文件 › 放回原处
- 确认无误后再清空。Apple 的废纸篓说明提醒,清空后内容会永久删除
复杂产品请使用对应指南
- 在 Mac 上卸载 Google Chrome
- 在 Mac 上卸载 Docker Desktop
- 在 Mac 上卸载 Adobe Creative Cloud
- 在 Mac 上卸载 Microsoft Office
- 在 Mac 上卸载 Homebrew
这些产品会涉及配置文件、共享服务、容器、命令行链接或 shell 配置,通用清单不能替代各自的卸载顺序。
更快也更稳妥的做法
专门的卸载工具可以解析 Bundle ID,汇总可能相关的资源库文件,Mole 会先展示候选项和大小,校验路径,再把普通文件移到废纸篓,它能减少搜索工作,但不能取代厂商卸载器,也不会自动删除共享容器。
安全卸载器在内部如何工作
Mole 命令行版与 Mac App 的实现彼此独立,但都把卸载分成发现、检查和确认执行,下面是 Mac App 的流程。
Bundle ID 只有符合反向域名格式时才参与匹配,避免异常输入放大搜索范围,扫描器会读取内嵌登录项 Info.plist 中的标识符,不从文件名猜测。
用户批准计划后,应用才退出目标程序并停止精确匹配的辅助进程,启动项要先通过 PathGuard,DeletionExecutor 也会在移到废纸篓前再次校验每个 URL,不存在、受保护或被拒绝的路径会明确记为跳过。
一条可复用的安全卸载原则
系统集成软件用厂商卸载器,普通应用先退出并把程序包移到废纸篓,再按 Bundle ID 和数据类型检查残留。文档、配置、数据库和群组容器在归属确认前保留,订阅单独处理,验证相关应用和服务正常后再清空废纸篓。搜索到路径只代表发现候选项,不代表获得删除权限。