如何在Xcode中为Mac应用程序设置图标?
如何在Xcode中设置Mac应用程序的图标?
问题的原因:
由于Xcode 4.4之后,Icon Composer不再是创建图标的推荐方式,并且不再包含在Xcode的标准安装中。
由于引入了带有Retina显示屏的Mac电脑,现在建议提供所有图形(包括应用图标)的高分辨率版本。
解决方法:
1. 在Finder中创建一个名为[IconName].iconset的文件夹。
2. 将图标作为png文件放入此文件夹中。需要提供16px、32px、64px(仅Retina显示屏)、128px、256px、512px和1024px(仅Retina显示屏)大小的图标。
3. 这些图标必须按照icon_16x16.png、icon_32x32.png、icon_128x128.png等模式命名。
4. 为了支持Retina显示屏,还必须添加具有两倍分辨率的图标文件,命名为icon_16x16.png(尺寸为32x32)、icon_32x32.png(尺寸为64x64)等,直到icon_512x512.png(尺寸为1024x1024)。
5. 将[IconName].iconset文件夹拖到Xcode中(如果需要,复制文件夹)。
6. 在info.plist文件中将"CFBundleIconFile"(作为键的Icon File)的值设置为[IconName],但不包括.iconset扩展名。
注意事项:
- 目前不需要提供所有图标。
- 如果不提供每个图标文件,通常也可以正常工作。
- iconset文件夹不应包含icon_64x64.png文件,64px图标仅适用于icon_32x32的Retina版本。
更新:
最终.iconset文件夹应包含以下10个项:
icon_16x16.png
icon_16x16.png
icon_32x32.png
icon_32x32.png
icon_128x128.png
icon_128x128.png
icon_256x256.png
icon_256x256.png
icon_512x512.png
icon_512x512.png
官方指南:
https://developer.apple.com/library/content/documentation/GraphicsAnimation/Conceptual/HighResolutionOSX/Optimizing/Optimizing.html
附加信息:
要将iconset文件夹转换为icns文件,请在终端上运行以下命令:
iconutil -c icns [IconName].iconset
其中,[IconName]应替换为iconset文件夹的前缀。现在你有一个名为[IconName].icns的文件。在Xcode 4.4中,在目标摘要中,右键点击图标的问号,然后选择icns文件。然后,你应该看到问号被图标替换。
在某些情况下,iconset文件夹不会自动添加到“Copy Bundle Resources”构建阶段中,这时你需要手动将其添加到构建阶段中。
如果使用icns文件设置NSStatusItem的图标/图像,则必须对图像调用setSize,否则图标将无法显示。
以下Shell脚本使用ImageMagick将单个icon_512x512.png文件转换为所需的所有其他文件:
#!/bin/bash
for size in 16 32 128 256 512; do
convert 'icon_512x512.png' -resize ${size}x${size} icon_${size}x${size}.png;
done;
for size in 16 32 128 256; do
dub=$[ ${size} * 2 ];
convert 'icon_512x512.png' -resize ${dub}x${dub} icon_${size}x${size}''.png;
done
截至Xcode 10.1版本,图标必须命名为'appiconset',而不是'iconset'。
如何在Xcode中为Mac应用程序设置图标?
按照以下步骤为项目添加应用程序图标。这是MacOS在文档栏和alt-tab显示中显示的图标。
1. 创建一个图标.icns资源文件
2. 将它放在“resources/macos”文件夹中
3. 将其添加到xcode项目的资源组中
4. 编辑Info.plist文件,将“CFBundleIconFile”值字符串更改为“icon”
此外,img2icns工具可以方便地将图片转换为图标。
…将“CFBundleIconFile”值字符串更改为您的.icns文件的名称。FTFY
在Xcode 7中,您不必将.icns文件放在特定的文件夹中,只要它在包内即可。我创建了一个/Assets文件夹,只需将icon.icns文件拖到Xcode中的文件夹中。然后我编辑了Info.plist并将图标文件设置为icon.ins。您还必须在“General”设置中禁用使用资源的功能。
Xcode 7之后(具体引入时间不确定),可以使用Assets.xcassets文件来设置Mac应用的图标。这个文件在新项目中是默认包含的。
简单来说:
- 进入你的目标设置,在“General”下的“App Icons”中,确保“Source”设置为“AppIcon”。
- 将所有10个png图标添加到Assets.xcassets的AppIcon图像中。
- 如果之前已经启动过该应用程序,则删除派生数据,否则它将继续显示默认图标。
- 运行应用程序;现在它应该在Dock、应用切换器和其他应该出现的地方显示你的图标。