文末有CleanDiskGo永久会员赠送
大家好,我是CleanDiskGo的开发者。
做这个App的起因特别简单:我有台老旧的MacBook Air是256G的,天天被"磁盘几乎已满"逼疯。市面上能用的清理工具,要么是订阅制贵得离谱,要么虽然免费但背后在偷偷收集用户数据。
而我作为一个从业十来年的iOS开发,整理了技术方案,发现非常简单,于是决定自己手搓一个。
于是,就这么跳进了坑里。CleanDiskGo也从一个小工具慢慢长成了现在这个样子。上周我发了次大更新,我觉得该来少数派认真聊聊了:到底改了啥,为啥这么改。
追CleanMyMac的清理规则
从年初我开始系统性地干一件事:把CleanMyMac的清理规则一条条拆开,看它扫了哪些目录、覆盖了哪些应用、哪些场景它能扫到而我扫不到,然后一条条补。
先从微信、企业微信、飞书、钉钉、QQ这些国内用户天天用的应用入手。它们的缓存目录藏得五花八门,Container里、Group Containers里、应用自己建的隐藏文件夹里,哪儿都有。
补完社交和办公类,范围越扩越大。Adobe全系设计软件、国内外云盘、媒体播放器、开发工具、视频剪辑软件、各种游戏平台,一路扫过去。Xcode的DerivedData、Archives、iOS模拟器镜像这些几十G的大头也单独翻了一遍。浏览器除了Safari和Chrome,Edge和各种国产变体也没落下。还有最近的各种AI工具。
同时还建了白名单。有些文件虽然在缓存目录里,但删了会让软件出问题。激活信息、数据库索引、用户自定义模板之类,一个个标记出来,扫描时自动跳过。清理工具最重要的不是能删多少,而是不能删错东西!
这轮搞完,CleanDiskGo的清理规则已经完全超过CleanMyMac。

关于软件卸载
软件卸载这个功能CleanDiskGo很早就有,第一版真实纯手写,当时AI效果并不是很好。但之前的版本有个毛病:大软件的残留路径覆盖不全。
举Google Chrome例子吧,大家每天都在用。你要是只是把它从"应用程序"文件夹里删掉,它会在你Mac上留下很多东西。
首先是 ~/Library/Application Support/Google/Chrome/,用户数据、配置文件、插件全在这里,动辄好几个G。然后是 ~/Library/Caches/com.google.Chrome/,浏览器缓存、图片、JS、CSS塞了一堆。~/Library/Preferences/com.google.Chrome.plist 存着偏好设置,倒是占用不大但就是赖着不走。最烦的是 ~/Library/LaunchAgents/com.google.keystone.agent.plist,Google的自动更新程序,Chrome都删干净了它还在后台跑。还有系统级的 /Library/Google/GoogleSoftwareUpdate/ 更新服务残留,以及 ~/Library/Saved Application State/ 下面的窗口恢复状态也给你留着。
就一个浏览器,拖进废纸篓之后剩6个地方的东西。一般用户根本不知道这些目录的存在。
这段时间我把卸载规则库整个重做了一遍。办法跟清理规则一样:装上应用,用文件系统diff工具看它到底动了哪些目录,记下来,写进规则库。Adobe系列、Office系列、Xcode、Docker、Android Studio、Parallels Desktop、各种国产浏览器,这些大家伙一个个过了一遍。
这个时候要好好夸一下AI,真心帮了大忙o(╥﹏╥)o

关于人民币配色的这个想法
写代码写到凌晨的时候脑子容易冒出奇怪的想法。
有一天晚上我在调颜色主题,盯着钱包里的人民币发呆。1块是绿的,5块是紫的,10块是蓝的,20块是棕的,50块是青绿的,100块是红的。这不就是现成的配色方案吗。我就真做了。
| 主题名 | 对应面额 | 颜色 |
|---|---|---|
| 不焦绿 | ¥1 | 淡绿色 |
| 绝绝紫 | ¥5 | 紫色 |
| 不摆蓝 | ¥10 | 蓝色 |
| 糖太棕 | ¥20 | 棕色 |
| 放青松 | ¥50 | 青绿色 |
| 发财红 | ¥100 | 红色 |
名字是Gemini给的方案。"不焦绿"谐音"不焦虑",1块钱面额最小,不用焦虑。"放青松"谐音"放轻松",50块钱面额大一些,可以放松一下。"绝绝紫"蹭了个网络梗。"发财红"字面意思,谁不爱毛爷爷。
一个系统清理工具做6个颜色主题,从产品角度讲确实没啥用。但我觉得工具不一定要那么无聊。用户每天打开CleanDiskGo清理垃圾这件事本身就挺烦的,换个好看的颜色能让他心情好一点点,那这个功能就没白做。
而我现在最喜欢用的是"糖太棕"。

系统数据分析:我最想做的一个功能

做CleanDiskGo这段时间,看到网上用户反馈最多的一句:"系统数据到底是什么?为什么占了100多G?能不能删?"
macOS存储管理里的"系统数据"是个黑盒。用过Mac的人都领教过。Time Machine本地快照、iOS备份、各种应用的沙盒容器、系统日志全混在一起,只给你看一个灰色的数字。
我一直想做这个功能,但之前没敢动。系统数据的构成太复杂了,很多目录是系统保护的,分析起来权限和安全都是坑。
这轮更新我先重构了整个工具箱。之前工具箱里的功能是东一个西一个加上去的,交互乱得不行。这轮重新做了分类和统一交互。
工具箱搞完之后,我就开始死磕系统数据分析。
它干的事情其实很简单:把那坨灰色的"系统数据"拆开。Time Machine快照占了多少,iOS备份残留占了多少,各应用的沙盒数据占了多少,系统缓存和日志占了多少,一项项列出来,你可以按自己的需要选择性清理。
这个功能目前已经上线,因为CleanDiskGo是零数据收集原则,目前不太清楚用户关于该工具的的使用情况,有使用的朋友可以帮忙反馈下,非常感谢!


最后说几句
CleanMyMac是MacPaw公司开发,做了十几年,产品成熟。我一个独立开发者想追上去,确实有难度。但不代表没机会。大团队有大团队的打法,一个人也有一个人的打法。
我的打法很简单:盯着国内Mac用户真正头疼的问题,一个个解决。微信缓存、系统数据黑盒、卸载残留。这些问题CleanMyMac不是解决不了,而是他们面向全球用户,不可能像我一样花两三个月专门抠国产应用的缓存路径。
这轮更新花了我好几个月的晚上和周末。结果是值得的。清理规则和卸载规则数量上都超了CleanMyMac,工具箱重新理了一遍,系统数据分析功能也上了。还有那6个人民币配色,虽然没啥用,但我自己是真的喜欢。
CleanDiskGo目前在App Store排行榜上大概一百来名,最高的一次冲到了五十多名。对独立开发者来说我已经很满意了,但离"被更多人知道"还有很长的路要走。
最后,赠送给少数派的朋友10个永久会员,领取的朋友希望能在评论区回复一下,避免其他同学重复尝试。
| H6JW3TLJXFM84NWFA7 | https://apps.apple.com/redeem?ctx=offercodes&id=6749827671&code=H6JW3TLJXFM84NWFA7 | |
| HR7JTXFNMTPP4WMRFA | https://apps.apple.com/redeem?ctx=offercodes&id=6749827671&code=HR7JTXFNMTPP4WMRFA | |
| 34EETTEK3RFYPNXTWK | https://apps.apple.com/redeem?ctx=offercodes&id=6749827671&code=34EETTEK3RFYPNXTWK | |
| WAJT6A4LPWHFTJEH6T | https://apps.apple.com/redeem?ctx=offercodes&id=6749827671&code=WAJT6A4LPWHFTJEH6T | |
| AFRNP47R4H7R7JXJAW | https://apps.apple.com/redeem?ctx=offercodes&id=6749827671&code=AFRNP47R4H7R7JXJAW | |
| KXFLAP683YM46LATEP | https://apps.apple.com/redeem?ctx=offercodes&id=6749827671&code=KXFLAP683YM46LATEP | |
| PPMPFWK4E3LPFH7NYP | https://apps.apple.com/redeem?ctx=offercodes&id=6749827671&code=PPMPFWK4E3LPFH7NYP | |
| TY7HLE3FFT8FXRTEJ6 | https://apps.apple.com/redeem?ctx=offercodes&id=6749827671&code=TY7HLE3FFT8FXRTEJ6 | |
| PX37N7PEELNHN86LL8 | https://apps.apple.com/redeem?ctx=offercodes&id=6749827671&code=PX37N7PEELNHN86LL8 | |
| 8A3LKXPPEM33KAL67R | https://apps.apple.com/redeem?ctx=offercodes&id=6749827671&code=8A3LKXPPEM33KAL67R |
