给 OS X 应用一个自定义图标?

Give an OS X app a custom icon?

是的,我的问题就这么简单。如何让我的应用程序使用图标文件或资产目录?!

系统信息:
Xcode6.1.1 (6A2008a)
应用目标 OS X 10.10
OS X 10.10.1 (14B25)

这是我的第一个 OS X 应用程序,但我有多年开发 iOS 应用程序的经验。

重现步骤:

  1. 打开Xcode,开始一个全新的cocoa应用程序项目
  2. 不确定这是否重要,但我指定我的新项目不使用故事板或核心数据
  3. 将一个 .png 文件从我的本地目录拖到项目结构中,并确保 (a) 它最终出现在构建目标中,并且 (b) 文件复制到项目的目录中
  4. 将 png 拖到 AppIcon 尺寸类别 any/all 下的 Images.xcassets 目录中。
  5. 构建并运行

预期:停靠栏和选项卡切换器中的应用程序具有新图标。
实际:停靠栏和标签切换器中的应用程序具有默认 "blank page with instruments A on it"

好吧,也许这是一个 DEBUG 问题。

  1. 存档项目,在finder中显示

预期:Finder 中的应用具有正确的图标
实际:没有。不过应该注意 Xcode 的管理器显示了正确的图标,并且确实存在一个文件 Contents/Resources/AppIcon.icns。 Contents/Info.plist 指定图标文件为"AppIcon".

呜呜呜。让我们试试没有资产目录。

  1. 在目标的常规设置中,在应用程序图标下,select "don't use asset catalogs"
  2. 删除Images.xcassets
  3. 在 Info.plist 中,在图标文件 (CFBundleIconFile) 的行中,指定图标的名称(在我的例子中是 "AppIcon")。文档 clearly states

    The system looks for the icon file in the main resources directory of the bundle.

    此处不需要文件扩展名。

  4. 构建并运行。也存档,以节省以后的时间。

预期:停靠栏和标签切换器中的应用程序图标是正确的。
实际:没有
预期:存档的应用程序具有正确的图标。
实际:没有,但是归档产品在 Contents/Resources.

中确实有正确的 png 文件

我错过了什么?!

我已经尝试使用 .png 应用程序图标和常规 .icns 文件(由 Xcode 通过资产目录生成)。我试过在 Info.plist 中排除和包含文件扩展名。为什么这么难?

编辑: 清理、清理生成文件夹并删除派生数据文件夹没有帮助。

所以我在评论者的帮助下找到了答案:我必须用 确切尺寸 .[=10 的图像填充所有 xcassets/icns 插槽=]