Matrix 首页推荐  

Matrix  是少数派的写作社区,我们主张分享真实的产品体验,有实用价值的经验与思考。我们会不定期挑选 Matrix 最优质的文章,展示来自用户的最真实的体验和观点。 
文章代表作者个人观点,少数派仅对标题和排版略作修改。


最近有点时间在 mac 上开始游戏和模拟器(果然我这种爱折腾的人就爱在 windows 折腾生产力,在 mac 上折腾游戏),结果发现了一个比较有意思的 bug。

触发过程

通过 Ryujinx Switch 模拟器把游戏添加游戏快捷路径(即:右键菜单的 Create Application Shortcut 功能);然后,在「应用程序」文件夹中把对应的. app 文件夹删除。

应用程序文件夹里已经找不到文件任何包含 Pok 字符的文件

此时在启动台中应该无法再看见该应用的图标,但事实是,该图标有概率会保留;

我的宝可梦 · 朱游戏图标就很神奇的保留了下来

甚至利用 Lemon 这种卸载工具也没办法卸载……

Lemon 上也完全查不到这个 APP

问题分析

一开始本以为这是个系统级的 bug,查了会资料,大多推荐用 cleam my mac 或者 lemon 卸载,但是实测无用。要不就是找不到应用,要不就是卸载完后依旧在启动台有个图标。
更有甚者建议我把那个图标丢到文件夹的下一页眼不见心不烦……

原本已经准备放弃的时候,我猛然间发现如果通过 mac 的 steam 安装游戏并打开启动台直接启动游戏选项时,启动台会生成图标但文件夹中不会有相应的 app 文件生成。

这一现象给了我灵感,我意识到启动台的应用图标并不是和「应用程序」文件夹一一对应的,有另外的配置文件或数据库与之对应。

通过对启动台包名 com.apple.dock.launchpad 的查找,我终于找到了位于犄角旮旯的配置文件。很幸运,这个文件是个没加密过的 Sqlite 3 数据库文件,通过简单的 sql 语句我就查明白了数据库各个表的结构。

可以直接通过系统自带的 sqlite 命令查询修改数据库

于是最终的解决办法应运而生。

解决方法

  • 打开 Finder
  • 按下 command+shift+G 启动前往窗口
  • 在前往中输入地址 /private/var/folders 后回车
mac 这功能藏的够深的,生怕我们乱搞系统配置文件吗,连文件路径跳转都要管……
  • 在当前文件路径下搜索 com.apple.dock.launchpad 这个文件夹
就是这个文件夹
  • 进入后有个文件夹 叫 db
如图
  • 打开终端,通过 cd 命令进入该文件夹
如果觉得手打路径太复杂,直接在 cd 之后把那个 db 文件夹拖到终端窗口就自动把路径带出了
  • 确认路径无误后在终端输入:
sqlite3 db "delete from apps where title=' 应用名称 ';"&&killall Dock`

 

命令大概意思是:删除数据库中的对应应用名称的那行数据,并重启整个 Dock + 启动台程序
  • 看见窗口跳动后即成功
图标终于清理了

接下来还有啥?

大概研究了一下,感觉有类似需求的人还挺多的,准备抽空花点时间写个简单的 Mac 小工具,实现可视化的启动台图标管理。说不定还能把启动台的各类图标自定义?或者做些奇特的操作?

各位如果有比较有意思的想法都可以留言,我研究研究是否能够实现。

> 下载 少数派 2.0 客户端、关注 少数派公众号,解锁全新阅读体验 📰

> 实用、好用的 正版软件,少数派为你呈现 🚀