如何在 Mac 上卸载 One Switch
One Switch 是 Fireball Studio 出的菜单栏应用,把系统里的各种开关放在一处,官网列出的有隐藏桌面图标、深色模式、保持唤醒、屏幕保护程序和 AirPods。它自己存的东西很少,有两件事值得先做:把你开着的开关关掉,比如隐藏桌面图标或保持唤醒,让 Mac 在设置它的应用消失之前回到你想要的状态;买了许可证的话把激活邮件留好,官网说许可证通过邮件发送,并且是买断的。测试没有验证移除应用之后开关会不会自动还原。本文覆盖直接下载的磁盘映像和 Homebrew cask one-switch,Setapp 版是另一个安装来源,没有测。
退出并移除应用
- 打开 One Switch,把不想一直开着的开关关掉。
- 从菜单栏图标退出 One Switch。
- 打开访达,进入「应用程序」,把 One Switch 拖进废纸篓。
测试里没有记录到 One Switch 的登录项或启动代理,不过你自己开过的话,可以去系统设置 › 通用 › 登录项与扩展里确认一下。
数据在哪里
在访达按 Shift + Command + G 逐项打开,不存在的路径跳过即可。
| 位置 | 内容 | 处理建议 |
|---|---|---|
~/Library/Application Support/One Switch |
应用的数据,测试里 94 KB,测试没有打开它 | 移除。Mole 会列出供审查,默认勾选。 |
~/Library/Preferences/studio.fireball.OneSwitch.plist |
偏好设置 | 移除。Mole 默认勾选。 |
~/Library/Caches/studio.fireball.OneSwitch |
缓存,测试里 283 KB | 移除。Mole 默认勾选。 |
~/Library/HTTPStorages/studio.fireball.OneSwitch、~/Library/HTTPStorages/studio.fireball.OneSwitch.binarycookies |
网络存储和 Cookie | 移除。Mole 默认勾选。 |
getconf DARWIN_USER_CACHE_DIR 打印出的文件夹里名为 studio.fireball.OneSwitch 的临时缓存 |
测试里是空的 | 随应用一起移除。Mole 默认勾选。 |
~/Library/Application Support/com.apple.sharedfilelist/com.apple.LSSharedFileList.ApplicationRecentDocuments/studio.fireball.oneswitch.sfl4 |
应用的最近文档列表 | 留着也没关系。Mole 可能会列出这个应用自己的列表,测试用的构建没有完全磁盘访问权限,读不了这个文件夹,文件留了下来。com.apple.sharedfilelist 里的其他文件不要动。 |
检查结果
pgrep -il 'one switch'
ls -d "$HOME/Library/Application Support/One Switch" "$HOME/Library/Preferences/studio.fireball.OneSwitch.plist" "$HOME/Library/Caches/studio.fireball.OneSwitch"
launchctl list | grep -i fireball
pgrep没有输出,表示 One Switch 没在跑。打印出一行就是还活着的进程,退出它,或者重启一次 Mac。ls打印出来的路径仍然存在,No such file or directory表示该路径已经没了。应用还没退出就移除的话,偏好设置文件可能被写回来,等应用退出后再移一次。launchctl没有输出,表示当前用户下没有加载 Fireball 的任务。有输出说明还登记着后台项目,去登录项与扩展里关掉。
用 Homebrew 安装时
brew uninstall --cask one-switch
这个 cask 没有 uninstall 步骤,所以这条命令只移除应用,数据留着。它的 zap 清单包括 ~/Library/Application Support/One Switch、~/Library/Application Support/studio.fireball.OneSwitch、上面的缓存、HTTPStorages 和偏好设置、~/Library/WebKit/studio.fireball.OneSwitch 以及最近文档列表。运行 brew uninstall --cask --zap one-switch 会把这些统统删掉,不管你有没有审查过,也不读取 Mole 的勾选。Mole 只在整个移除范围都通过它的 zap 检查时才加 --zap,有未勾选或共用的路径、超出审查范围的路径,或者磁盘上存在但它没有列出的匹配路径,都会让它不加,这时改由 Mole 自己移除你勾选的行。
账号和订阅
卸载不会停用许可证,也不会取消和 Fireball 之间的任何事情。官网写的是 7 天免费试用和带免费更新的买断许可证,读过的页面里没有提到怎么停用某台 Mac,需要的话通过应用里的反馈入口或官网联系 Fireball。
Mole 会列出什么
Mole 会勾选应用本体、偏好设置文件、缓存、两处 HTTPStorages 和临时缓存文件夹,~/Library/Application Support/One Switch 会列出供审查,默认勾选。移除之前 Mole 会请 One Switch 退出,用 defaults delete 清掉这个应用的偏好设置域,这一步从废纸篓里恢复不了,应用把偏好设置文件写回来的话 Mole 会再移走一次。最近文档列表只有 Mole 能读到那个文件夹时才找得到,这需要完全磁盘访问权限。
这次检查覆盖了什么
2026 年 11 月 9 日,这次检查从 Fireball 官网下载了 Universal 磁盘映像 1.35.4,sha256 与 Homebrew cask 一致,把应用拷进「应用程序」,没有运行 brew install,打开一次、退出。随后用源码构建、重新签名的 Debug 版 Mole 勾上全部审查行卸载,没有使用 Mole 的公证发布版。Mole 把 6 行连同应用本体移进了废纸篓,没有失败项,偏好设置文件在卸载后又出现,Mole 又移了一次。只剩最近文档那个文件,因为测试用的构建没有完全磁盘访问权限,读不了它所在的文件夹。状态页显示一行 One Switch,1 个进程,Mole 检测到的是没有更新源的 Sparkle 更新器,所以没有可更新的内容,也没有执行更新。没有激活许可证,也没有打开任何开关,所以各个开关改了什么、试用和许可证的处理,以及由 Homebrew 管理的卸载都没有测。
