如何为不是应用的捆绑设置图标?我尝试使用CFBundleIconFile,但它不起作用(但如果我只是将包扩展名更改为.app
,则图标将更改为所需的图标)。是否有其他密钥,或唯一的方法是为目录设置图标?如果是这样,是否已经有一些脚本从命令行(Xcode运行脚本)执行此操作?
答案 0 :(得分:2)
如果您需要从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];