非应用程序的Mac OS X捆绑包设置图标

5
如何为不是应用程序的捆绑设置图标?我尝试使用CFBundleIconFile,但它不起作用(尽管如果我只更改捆绑扩展名为“.app”,图标就会更改为所需的图标)。是否有另一个键,或者唯一的方法是为目录设置图标?如果是这样,是否已经有一些脚本可以从命令行(Xcode运行脚本)执行此操作?
2个回答

2

Visual documentation of the process of copying and pasting an icon in the Finder

如果你需要从CLI执行它... 这需要更多的步骤...
首先,你需要在你的bundle中添加一个CFBundleIconFile字符串。
YourThing.bundle/Contents/Info.plist

这里是开发人员可以指定捆绑包自定义图标的位置。该键包含捆绑包资源文件夹中保存图标的文件的名称。TextEdit将其图标保存在名为Edit.icns的文件中,但是文件名没有规定。话虽如此,您需要一个ICNS文件,或者可以使用这些说明Utility(包括源代码)生成命令行中的图像文件的ICNS。
$ ./makeicns 

用法:makeicns [k1=v1] [k2=v2] ...
键和值包括: 512:512x512图标变体的输入图像名称 256:256x256图标变体的输入图像名称 128:128x128图标变体的输入图像名称 32:32x32图标变体的输入图像名称 16:16x16图标变体的输入图像名称 in:所有没有显式名称的变体的输入图像名称 out:输出文件的名称,默认为第一个非空输入名称,但加上.icns扩展名
示例:
  makeicns -512 image.png -32 image.png

创建一个只包含512x512和32x32两种变体的image.icns文件。
  makeicns -in myfile.jpg -32 otherfile.png -out outfile.icns

创建 outfile.icns 文件,其中包含来自 myfile.jpg 的大小为 512、256、128 和 16 的数据,并包含来自 otherfile.png 的大小为 32 的数据。

0

这个解决方案对我有用,但它没有改变我的应用程序包中/Contents/Resources/appicon.icns文件的内容。即使我重新启动它,它也使用我设置的新图标,但我的旧图像仍然存在于资源文件夹中,这让我想到除了简单的刷新之外还发生了一些棘手的事情。@yairchu,请您分享一下您的想法。 - Noitidart
1
@Noitidart:我在重复的问题(链接)中找到了它,就像我之前提到的那样。“Fruity Geek”在那里给出了答案,并提供了苹果的参考链接,我没有更多的细节。 - yairchu
谢谢,我在那里留言问他了 :) - Noitidart
这就像在Finder的“获取信息”窗口中执行操作一样。它不会更改捆绑包中的图标文件。当移动到另一台机器时,它不会持久存在,对吧? - uchuugaka

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接