最近有点时间在 mac 上开始游戏和模拟器(果然我这种爱折腾的人就爱在 windows 折腾生产力,在 mac 上折腾游戏),结果发现了一个比较有意思的 bug。
触发过程
通过 Ryujinx Switch 模拟器把游戏添加游戏快捷路径(即:右键菜单的 Create Application Shortcut 功能);然后,在「应用程序」文件夹中把对应的. app 文件夹删除。
![](https://i3.wp.com/cdnfile.sspai.com/2023/12/17/ba1ae5db3f401dd28946dcb49d1d281d.png)
此时在启动台中应该无法再看见该应用的图标,但事实是,该图标有概率会保留;
![](https://i3.wp.com/cdnfile.sspai.com/2023/12/17/d56bd1fdbe27adda707ff893965cb1aa.png)
甚至利用 Lemon 这种卸载工具也没办法卸载……
![](https://i3.wp.com/cdnfile.sspai.com/2023/12/17/dc5b94a28e2bd68d7b56ac7137abbb95.png)
问题分析
一开始本以为这是个系统级的 bug,查了会资料,大多推荐用 cleam my mac 或者 lemon 卸载,但是实测无用。要不就是找不到应用,要不就是卸载完后依旧在启动台有个图标。
更有甚者建议我把那个图标丢到文件夹的下一页眼不见心不烦……
原本已经准备放弃的时候,我猛然间发现如果通过 mac 的 steam 安装游戏并打开启动台直接启动游戏选项时,启动台会生成图标但文件夹中不会有相应的 app 文件生成。
这一现象给了我灵感,我意识到启动台的应用图标并不是和「应用程序」文件夹一一对应的,有另外的配置文件或数据库与之对应。
通过对启动台包名 com.apple.dock.launchpad
的查找,我终于找到了位于犄角旮旯的配置文件。很幸运,这个文件是个没加密过的 Sqlite 3 数据库文件,通过简单的 sql 语句我就查明白了数据库各个表的结构。
![](https://i3.wp.com/cdnfile.sspai.com/2023/12/17/487b52083e06138834b84d26baa2d57b.png)
于是最终的解决办法应运而生。
解决方法
- 打开 Finder
- 按下
command+shift+G
启动前往窗口 - 在前往中输入地址
/private/var/folders
后回车
![](https://i3.wp.com/cdnfile.sspai.com/2023/12/17/b44b3a67c7e4b90d771277fa6fcbc060.png)
![](https://i3.wp.com/cdnfile.sspai.com/2023/12/17/1f219a7d47fe65ecbcbd22e6117cc1e3.png)
- 进入后有个文件夹 叫
db
![](https://i3.wp.com/cdnfile.sspai.com/2023/12/17/bf13ab0e3cd2d5b6fd70c41040d600e1.png)
- 打开终端,通过
cd
命令进入该文件夹
![](https://i3.wp.com/cdnfile.sspai.com/2023/12/17/6c110a3304e4438c1e7eea367af925b7.png)
- 确认路径无误后在终端输入:
sqlite3 db "delete from apps where title='应用名称';" && killall Dock
![](https://i3.wp.com/cdnfile.sspai.com/2023/12/17/7455142b1734df96d2d02f421b905308.png)
- 看见窗口跳动后即成功
![](https://i3.wp.com/cdnfile.sspai.com/2023/12/17/edc5cd6eac59954ca13fd227708977db.png)