我编译了一个名为 MyBundle.bundle 的 Mac OSX 包,它用作另一个应用程序的插件。我希望捆绑包有一个唯一的图标,因此我将 Info.plist 文件设置为:
<key>CFBundleIconFile</key>
<string>MyIcon.icns</string>
并将文件 MyIcon.icns 放在包的 MyBundle.bundle/Contents/Resources 文件夹中。
这不起作用,查找器显示包的通用图标并忽略指定的 MyIcon.icns 文件。如果我将包的扩展名从 .bundle 更改为 .app 图标会立即显示 - 所以我知道 Info.plist 是正确的。
我找到了一个模拟用户在捆绑包上复制和粘贴图标的解决方法:
我将图标作为“icns”类型的资源和 id -16455 添加到包的 .rsrc 文件中。
我比打电话
/Developer/Tools/SetFile -a BC MyBundle.bundle
这行得通,但真的很蹩脚。从 Mac OS 10.8 开始,SetFile 需要永远执行。
我的问题:是否可以强制 Finder 在没有此类黑客的情况下显示捆绑包的图标?
顺便说一句:关于同一主题有一个问题:Set icon of non app mac os x bundle;但是那里唯一的答案是关于如何创建图标的说明,并且对解决问题没有帮助。