设置非app mac os x包的图标

时间:2011-01-26 15:07:51

标签: macos icons bundle

如何为不是应用的捆绑设置图标?我尝试使用CFBundleIconFile,但它不起作用(但如果我只是将包扩展名更改为.app,则图标将更改为所需的图标)。是否有其他密钥,或唯一的方法是为目录设置图标?如果是这样,是否已经有一些脚本从命令行(Xcode运行脚本)执行此操作?

2 个答案:

答案 0 :(得分:2)

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

如果您需要从CLI执行此操作...它涉及更多......

首先,您需要在捆绑包中添加CFBundleIconFile字符串

YourThing.bundle/Contents/Info.plist
  

这是开发者所在的地方   指定捆绑包的自定义图标。   此密钥包含文件的名称   在bundle的Resources文件夹中   拿着图标。 TextEdit保留它的   名为Edit.icns文件的文件中的图标,   但是没有关于什么的规则   文件名必须是。

也就是说,您需要一个ICNS文件,或者follow these instructions来自Utility (which includes its source code),可以通过命令行从图像文件生成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
  

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

答案 1 :(得分:0)

Answer from similar (duplicate) question

[[NSWorkspace sharedWorkspace]
  setIcon:(NSImage *)image
  forFile:(NSString *)bundlePath
  options:0];