macOS 空白文件图标修复
现象
macOS Finder 中 .bib 文件不显示任何图标,呈空白状态。
根因
.bib 文件对应的 UTI(Uniform Type Identifier)是 org.tug.tex.bibtex,该类型由 Syntax Highlight.app(v2.1.30)注册。
该 App 的 Info.plist 中声明:
UTTypeIdentifier = org.tug.tex.bibtex
UTTypeIconFile = BibTeX
但检查该 App 的 Contents/Resources 目录及编译后的 Assets.car 资源包后确认,并不存在名为 "BibTeX" 的图标资源(无论是独立 .icns 文件还是 asset catalog 中的图片)。这是该 App 本身的资源打包缺陷,导致 Launch Services 按声明查找图标时找不到,Finder 只能显示空白图标。
排查过程
-
查询文件 UTI:
$ mdls -name kMDItemContentType main.bib kMDItemContentType = "org.tug.tex.bibtex" -
查看 UTI 的注册信息:
$ PATH="/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support:$PATH" $ lsregister -dump | grep -B1 -A3 "org.tug.tex.bibtex" -------------------------------------------------------------------------------- type id: org.tug.tex.bibtex (0x29910) bundle: Syntax Highlight (0x6ac8) uti: org.tug.tex.bibtex localizedDescription: "en" = ?, "LSDefaultLocalizedValue" = "BibTeX Database" flags: active imported trusted (0000000000000041) iconFiles: BibTeX --定位到声明方是
bundle: Syntax Highlight (0x6ac8),iconFiles: BibTeX。 -
检查该 App bundle 内的图标资源:
$ find "/Applications/Syntax Highlight.app" -iname "*bibtex*" /Applications/Syntax Highlight.app/Contents/Resources/highlight/share/langDefs/bibtex.lang /Applications/Syntax Highlight.app/Contents/Extensions/Syntax Hightlight Shortcut Action.appex/Contents/Resources/highlight/share/langDefs/bibtex.lang $ find "/Applications/Syntax Highlight.app" -iname "*.icns" /Applications/Syntax Highlight.app/Contents/Resources/AppIcon.icns $ assetutil -I "/Applications/Syntax Highlight.app/Contents/Resources/Assets.car" | grep -i -A3 "bibtex" $ assetutil -I "/Applications/Syntax Highlight.app/Contents/Resources/Assets.car" | grep -i '"Name"'发现无论是独立的
.icns文件还是Assets.car资源包中,都不存在名为BibTeX的图标资源。 -
核实
Info.plist中的声明与实际资源不一致:$ plutil -extract UTImportedTypeDeclarations xml1 -o - "/Applications/Syntax Highlight.app/Contents/Info.plist" | grep -B10 "tug.tex.bibtex" <dict> <key>UTTypeConformsTo</key> <array> <string>public.text</string> </array> <key>UTTypeDescription</key> <string>BibTeX Database</string> <key>UTTypeIconFile</key> <string>BibTeX</string> <key>UTTypeIdentifier</key> <string>org.tug.tex.bibtex</string>
修复步骤
-
卸载源头 App:
brew uninstall --cask syntax-highlight -
清理 Launch Services 残留注册:卸载后数据库中仍保留指向已删除 App 的过期类型声明,需手动清理:
$ lsregister -gc $ lsregister -apps local,system,user -R -
验证清理结果:
$ lsregister -dump | grep org.tug.tex.bibtex handlerpref id: org.tug.tex.bibtex (0x4e9c) -
刷新 Finder 图标缓存:
killall Finder
最终结果
org.tug.tex.bibtex 类型已无专属图标声明,Finder 回退显示默认打开方式
对应的应用图标(本机为 VS Code),不再是空白状态。

浙公网安备 33010602011771号