Xcode:应用程序图标怎么了?

在Xcode中创建图像集时,很容易为每个比例因子自动填充孔。 您只需要为三个比例因子图像文件提供正确的语法即可,例如:

  • image.png
  • image_2x.png
  • image_3x.png

拖入它们,Xcode会自动为每张图像检测正确的孔,然后tada!

因此,您认为在资产目录中设置应用程序图标同样容易。 那里有一些自动化,但是很奇怪,这有点麻烦。

让我们看一下我们可以做些什么。

生成应用程序图标文件

首先,如何设置所有这些版本的应用程序图标?

简单! Apple在HIG的资源部分中提供了Photoshop(或Sketch或Adobe XD)模板,用于设置图标,看起来像:

设置图标后,可以指定“文件”>“生成”>“图像资产”:

这将输出创建应用程序图标所需的所有文件:

将图标添加到资产目录

但是,正如我们所看到的,当您将这些图标拖到您的应用程序图标中时:

只有一些孔填充,其他孔保持空白,而某些文件被视为未分配:

您的第一个问题可能是:

我的猜测是这是Xcode中的错误。 如果有人对此有更多信息,请随时在此处添加评论。 但是也许一个更相关的问题是……

怎么办呢?

手动修复

因此,一种解决方案当然是手动解决此问题。 我们可以将文件一一拖到正确的孔中。 无聊! 我们要自动化!

修复自动化

因此,如果右键单击资产目录中的应用程序图标,然后选择“在Finder中显示”:

在这里,您将找到项目内的所有图标文件,以及一个“ Contents.json”文件:

这就是魔术的住所! Contents.json是资产目录用来描述其资产(或文件夹,元数据等)的文件。如果打开AppIcon的Contents.json文件,您会发现它描述了所有应用程序图标文件,空白孔和未分配的图像,如下所示:

我们需要的所有文件都在Asset Catalog的App Icon文件夹中,我们只需要在Contents.json文件中正确分配它们即可。 如果我们使用了Photoshop模板,则我们的文件每次都将具有相同的名称,因此我们可以简单地将Contents.json替换为标准的Contents.json文件,该文件已设置了正确的文件描述以及所有内容应该会自动掉入正确的井中!

因此,作为回顾,以下是从Photoshop生成图标文件后要遵循的步骤:

  1. 选择所有生成的文件( Icon-App-60×60@1x.png 除外 ,该文件不再包含在应用程序图标包中),然后将它们照常拖到Assets Catalog中的“应用程序图标”中在Xcode中。
  2. 右键单击“应用程序图标”,然后选择“在Finder中显示” 。 在这里,您将找到Contents.json文件。
  3. 用更正的Contents.json文件替换此Contents.json文件。 (您可以在这里找到此文件的要点。)
  4. 多田!

有一个应用程序!

或者,您可以尝试第三方解决方案。 但是请注意,有很多(甚至是付费的Mac程序)仅为您创建文件(正是Photoshop模板为您提供的功能),而没有帮助您将这些文件集成到Xcode中。

Icon Set Creator(这里的链接)是免费的,不仅可以为您生成文件,还可以生成Contents.json文件。 这意味着您可以简单地将此文件夹导入“资产目录”,文件将放入其孔中。