很久以前,我安装了 SeaMonkey。应用程序的 Info.plist 中有一个错误,错误地将许多文件类型与应用程序关联,特别是 .dylib。这个错误被识别出来,但没有提供解决方案(请参阅Bug 726488 - dylib 共享库在安装时与 SeaMonkey 相关联)
<dict>
<key>CFBundleTypeName</key>
<string>SeaMonkey Shared Library</string>
<key>CFBundleTypeRole</key>
<string>None</string>
<key>CFBundleTypeOSTypes</key>
<array>
<string>shlb</string>
</array>
<key>CFBundleTypeExtensions</key>
<array>
<string>shlb</string>
<string>dylib</string>
</array>
<key>CFBundleTypeIconFile</key>
<string>component.icns</string>
这种关联意味着 .dylib 文件将在 Finder 和 Spotlight(以及相关的 SeaMonkey 图标)中显示为“SeaMonkey 共享库”类型。
“卸载”(没有“合适的”卸载程序)SeaMonkey 导致 Finder 将 .dylib 文件正确识别为“Mach-O 动态库”。但是,现在 Spotlight 可以正确识别某些 .dylib 文件,但不能识别其他文件,我想这取决于 Spotlight 索引的位置和文件夹/文件的权限,而不是应用程序注册的范围/过程?
从命令行,是否有办法让 Spotlight 在整个系统范围内仅索引 kMDItemKind =“SeaMonkey Shared Library”的文件,以便文件类型显示为“Mach-O 动态库”?或者是否有一种聪明的方法来“反转”Info.plist 的使用 - 还有其他关联,例如 .plugins
谢谢 idac
OS X 10.5.8
答案1
你可以做两件事:
- 使用 RCDefaultApp 控制面板 (http://www.rubicode.com/Software/RCDefaultApp/)取消关联扩展:
- 安装面板并打开
- 转到扩展选项卡
- 搜索
dylib
扩展,并将终端设置为默认应用程序(这是正常设置;您可以完全删除扩展,因此它将没有关联的图标)
- 或者,如果您不想安装 RCDefaultApp,请重建启动服务数据库。对于 Mac OS X 10.5,您必须:
- 将以下文件移至废纸篓:
/Library/Caches/com.apple.LaunchServices-0230.csstore
/Library/Caches/com.apple.LaunchServices-023nnn.csstore
其中nnn
是要重置的用户 ID(例如,501
系统中创建的第一个用户)。或者,如果您想重置所有帐户,则为 all similar files。/Library/Caches/com.apple.LaunchServices-0140.csstore
并且/Library/Caches/com.apple.LaunchServices-014nnn.csstore
可能存在,如果你从 Tiger 升级的话,也需要将其丢弃。
- 重新启动 Mac。如果问题仍然存在:
- 删除
~/Library/Preferences/com.apple.LaunchServices.plist
文件 /Library/Caches
重复上述步骤(将重新创建文件)
- 删除
- 将以下文件移至废纸篓:
对于其他 Mac OS X 版本,请尝试此页面中的说明:http://www.thexlab.com/faqs/resetlaunchservices.html