如何在 Xcode 中设置 Mac 应用程序的图标?

Posted

技术标签:

【中文标题】如何在 Xcode 中设置 Mac 应用程序的图标?【英文标题】:How can I set the icon for a Mac Application in Xcode? 【发布时间】:2011-09-14 07:58:42 【问题描述】:

我在 Interface Builder 中学习了很多关于编写 Objective-C 代码和设计的知识,我想为我的简单程序设置图标。

我将相同的 JPG 添加到 Icon Composer 中的所有大小字段并获得了 ICNS,但我不知道如何将其添加到项目中。

提前谢谢你。

【问题讨论】:

【参考方案1】:

由于 Xcode 4.4 Icon Composer 不再是创建图标的推荐方式,并且不再包含在 Xcode 的标准安装中。 由于引入了具有视网膜显示屏的 Mac,现在建议提供所有图形的高分辨率版本,包括应用程序图标。

要在 Xcode > 4.4 下为您的应用提供图标,请执行以下操作:

    在 Finder 中创建文件夹 [IconName].iconset

    在此文件夹中将您的图标放置为 png 文件。您需要在 16px、32px、64px(仅限视网膜)、128px、256px、512px 和 1024 像素(仅限视网膜)

    这些图标必须以 icon_16x16.png 模式命名, icon_32x32.png、icon_128x128.png等

    要支持 Retina 显示器,您还必须添加带有双 分辨率,命名为 icon_16x16@2x.png(大小为 32x32), icon_32x32@2x.png(大小 64x64)等等直到 icon_512x512@2x.png(大小 1024x1024)。

    将此 [IconName].iconset 文件夹拖到 Xcode(必要时复制)

    在 info.plist 文件中将“CFBundleIconFile”(图标文件作为键)值设置为 [IconName] 但没有 .iconset 扩展名

注释:

(目前)不需要提供@2x 图标 如果您不提供每个图标文件,它(通常)也可以工作 iconset 文件夹不应包含 icon_64x64.png 文件。 64px 图标仅适用于 icon_32x32 的视网膜版本

更新: 最后你的 .iconset 文件夹有以下 10 项:

icon_16x16.png
icon_16x16@2x.png
icon_32x32.png
icon_32x32@2x.png
icon_128x128.png
icon_128x128@2x.png
icon_256x256.png
icon_256x256@2x.png
icon_512x512.png
icon_512x512@2x.png

官方指南:

https://developer.apple.com/library/content/documentation/GraphicsAnimation/Conceptual/HighResolutionOSX/Optimizing/Optimizing.html

附加信息:

要将 iconset 文件夹转换为 icns 文件,请在终端上运行以下命令:

iconutil -c icns [IconName].iconset

其中 [IconName] 应替换为图标集文件夹的前缀。您现在有一个名为 [IconName].icns 的文件。在 Xcode 4.4 中,在 Target Summary 中,右键单击图标的问号,然后选择 icns 文件。然后您应该会看到问号被图标替换。

【讨论】:

在某些情况下,图标集不会自动添加到“复制捆绑资源”构建阶段,在这种情况下,您需要手动将其添加到构建阶段。 注意:Xcode 4.4 自动验证图标集文件夹并将其转换为 icns 文件。您需要做的就是将 iconset 文件夹添加到您的项目并构建项目。生成的 icns 文件会自动添加到构建的产品中。 @kadam 你说得对,情况一直如此。我稍微修改了答案,使视网膜图标命名更清晰。 ^ 哦,他们没有在本文档中提到 64x64 或 1024x1024 尺寸:developer.apple.com/library/mac/#documentation/… ...因此这将数字减少到 10! @ChrisAllinson 您需要 64px 和 1024px 大小的图标。但它们被命名为icon_32x32@2xicon_512x512@2x.png。我在答案中添加了所有图标名称的列表以澄清这一点。【参考方案2】:

从 Xcode 7 开始(不确定最初是什么时候引入的),您可以使用 Assets.xcassets 文件作为应用图标。新项目默认包含此文件。

简单地说:

    转到目标设置并确保在GeneralApp Icons下的Source设置为AppIcon . 将所有 10 个 png 图标添加到 Assets.xcassets 的 AppIcon 图像中。 Delete derived data如果您之前启动过该应用,否则它将继续显示默认图标。 运行应用程序;它现在应该在 Dock、应用程序切换器以及它应该出现的任何其他地方显示您的图标。

【讨论】:

【参考方案3】:

按照这些steps 将应用程序图标添加到您的项目中。这是 MacOS 将在文档栏和 alt-tab 显示中显示的图标。

创建图标 .icns 资源文件 将其放在“resources/macos”文件夹中 将其添加到 xcode 项目中的资源组中 编辑 Info.plist 文件并将“CFBundleIconFile”值字符串更改为“icon”

另外,img2icns 工具可以方便地将图像转换为图标。

【讨论】:

…将“CFBundleIconFile”值字符串更改为 .icns 文件的名称。 FTY 在 Xcode 7 中,您不必将 .icns 文件放在特定文件夹中,只要它位于包内即可。我创建了一个文件夹 /Assets 并简单地将 icon.icns 文件拖到 Xcode 中的文件夹中。然后我编辑了 Info.plist 并将 Icon 文件设置为 icon.ins。您还必须禁用该功能才能在应用的“常规”设置中使用资产。【参考方案4】:

很简单

    使用自动工具(例如 IconFly)创建正确的 ICNS 或具有所有必要大小的图标集。

    然后将创建的 ICNS 或图标集拖放到 Xcode。

    在 info.plist 文件中将“CFBundleIconFile”值设置为 [IconName]

【讨论】:

【参考方案5】:

将应用程序图标添加到可可项目的步骤。

    从聚光灯下查找“Icon Composer”。 将图标(名称应类似于 imagename.icns)拖放到给定框中。 选择一个框并保存。 将保存的图像拖放到应用程序的 Resources 文件夹中。 选择目标-->右键单击项目名称-->选择GetInfo。 在“属性”中输入“图标文件”的名称。 现在清理构建并运行您的应用程序。

【讨论】:

6年后,这不再适用【参考方案6】:

Xcode 8.2.1

    通过IconMaker转换.png ?.icns

    将 AwesomeApp.icns 文件添加到与 info.plist 相同的文件夹中

    将 AwesomeApp.icns 文件拖到 xcode 中与 info.plist 相同的文件夹中

    在 info.plist 中设置图标:到 AwesomeApp.icns

【讨论】:

您还应该运行 command+option+shift+K 来清理构建。然后再次构建应用程序,图标应该会应用 听起来像是深度清洁!在某些情况下,重新启动 xcode 和您的计算机也可以解决问题:P 就我个人而言,在此之前我不必清理构建。谢谢卢卡的小费!为未来的旁观者使用 full。 @eonist IconMaker 链接已失效。 @jamescampbell 嘿,老运动。现已更新【参考方案7】:

第一步:从 info.plist 中获取图标文件名,并将 icns(icon file) 文件夹放入 SourceCode/resources 文件夹中

第 2 步:xcode 也是如此,您必须使用 xcode 中的 copyallframeworks 或 copyall 资源文件从 xcode 复制所有图像,然后再次构建应用程序。

【讨论】:

@Asif.Ali 给出步骤的答案。

以上是关于如何在 Xcode 中设置 Mac 应用程序的图标?的主要内容,如果未能解决你的问题,请参考以下文章

在 xcode 5.1 中设置应用程序图标和启动图像时出错

如何在 TableViewCell 中设置图标的背景颜色?

如何让自定义标签栏显示标签栏项目在 Xcode 中设置的选定图像?

如何在 Xcode 中设置 $(SRCROOT) 的父路径

无法在 iOS 11 中设置备用应用程序图标

Xcode 中设置APP的图标(Icon)和启动页面(Launch Screen)