iOS 7应用程序图标、启动图片和命名规范,同时保留iOS 6图标。

83

我刚完成了一个适用于iOS 6的应用程序,并在一周前购买了开发者账户,所以没有太多时间研究iOS 7 SDK。刚刚下载了黄金大师版,试图将我的应用程序升级为与iOS 7兼容。

我意识到iOS 7需要在应用图标上做一些修改。我查看了许多相关问题,感到困惑,不知道该怎么做。我已经有一个带有应用程序图标的iOS 6应用程序,当我安装了黄金大师版本后,看到了以下内容:

iOS 7 App Icons

以及启动图片:

iOS 7 Launch Images

我可以为iOS 7创建新的平面图标,同时希望iOS用户继续看到旧图标。

我该怎么办?使用“使用资产目录”还是手动添加图标?如果我要手动添加图标,那么这些图像应该命名为什么?谢谢!

4个回答

78

绝对的资产目录就是你所需要的答案,它可以在添加或更新应用程序图标时消除遵循命名约定的必要性。

以下是从苹果迁移应用程序图标集或启动图像集的步骤:

1- 在项目导航器中选择您的目标。

2- 选择常规选项卡,并向下滚动到应用程序图标部分。

enter image description here

3- 通过点击图像行右侧的文件夹图标并在弹出的对话框中选择图像文件在应用图标表格中指定一个图像。

enter image description here

4- 通过单击“使用资产目录”按钮、从弹出菜单中选择资产目录并单击“迁移”按钮将应用程序图标表格中的图像迁移到资产目录中。

enter image description here

或者,您可以通过选择编辑器 > 新建应用程序图标创建一个空的应用程序图标集,并通过从查找器中拖动它们或选择编辑器 > 导入将图像添加到该集合中。


2
是的,您的旧图像将立即迁移,但新图像肯定需要重新设计,但至少您可以通过资产目录确切地知道需要重新布局的图标或图像。 - Tarek Hallak
1
自从这样做后,我的AppIcon在Organizer和TestFlight中似乎丢失了;但在设备上似乎一切正常——我需要为这些工作做些其他的事情吗?我已经尝试过同时拥有CFBundleIcons,你有什么想法吗? - PaulJ
我发现对于多个目标项目,最好采取另一种方法,为每个目标创建新的资产文件。有时迁移选项会变得混乱。然后,每个资产都被分配一个单一的目标成员身份。 - RobCroll
关于TestFlight和Organizer的错误,请看下面我的解决方案。 - Danoli3
Asset Catalogs对于针对iOS 7以前版本的iPhone启动图像无法正常工作,如果使用它们将无法显示。 - ccjuju
显示剩余3条评论

24

您应该使用资源目录(Asset Catalog):

我调查了如何使用资源目录,现在对我来说似乎很容易。我想向您展示如何将图标和启动画面添加到资源目录中。

注意: 不需要在info.plist文件中进行任何输入 :) ,也不需要进行其他配置。

在下面的图像中,右侧有一个突出显示的区域,您可以在这里指定需要的图标。在我的情况下,我选择了前四个复选框;因为这是我的应用要求。您可以根据需求选择。

输入图像描述

现在,看下面的图片。当您选择任何应用程序图标时,您将在右侧的选定区域中看到其详细信息。它将帮助您上传正确分辨率的图标。 输入图像描述

如果未添加正确分辨率的图像,则会出现以下警告。只需上传具有正确分辨率的图像即可。 输入图像描述

上传所有所需维度后,您不应该收到任何警告。 输入图像描述


嗨:我遇到了这个问题,我已经按照您的设置进行了所有设置。当我运行应用程序时,模拟器会显示图标,但是无论我如何清理和重建,当我部署到真正的iPhone 5s上时,它从未显示过。 - phil88530
@phil88530,请确保您已经选择了iOS 7.0及更高版本的尺寸(就像上面的截图一样)。其次,请确保您正在使用最新的XCode版本,例如v5.1.1或更高版本。 - msmq
如果你想节省调整所有图标大小的时间,你可以使用这个应用,它会为你生成应用图标资源目录:https://itunes.apple.com/app/id1052532083(免责声明:本应用由我开发)。 - Erik

14

如果您不想使用资产目录,则可以通过创建120x120的.png图像并将其命名为Icon-120.png,然后将其拖入项目中来为旧应用程序添加iOS 7图标。

在TARGET > 您的应用程序 > 信息 > 图标文件下,向目标属性添加一个条目:

输入图像描述

我在Xcode 5上测试过,一款应用程序已经提交而没有丢失视网膜图标警告。


2
您可能还想添加Icon-76.png和Icon-152.png。同时确保这些图标在“Build Phases”>“Copy Bundle Resources”中列出(请参见https://dev59.com/GGkw5IYBdhLWcg3wEmWb#12225627)。 - Mikhail
感谢您对添加图标信息的位置进行描述,给您点赞! - TJ Asher
这真的是太好了,谢谢亲爱的。我花了两个小时来设置拖放的APPICON,但对我来说这不起作用,但使用.plist文件就可以了...非常感谢。 - Yagnesh

5

好的,针对 @null 的精彩帖子,关于使用资源目录,我有以下补充。

为了在Ad-Hoc分发 / 生产中看到应用程序图标链接并正常工作,您可能需要执行以下操作,以在组织者测试飞行和可能的未知AppStore位置中显示它。


创建资源目录后,请注意Xcode中.xassets中列出的启动图像和应用程序图标名称。

默认情况下,这应该是

  • AppIcon
  • LaunchImage

[要查看此内容,请单击您在Xcode中的.xassets文件夹/图标。] (此内容可更改,因此仅记下此变量以备后用)


现在每次构建会创建以下数据结构:

对于应用程序图标:

iPhone

  • AppIcon57x57.png(iPhone非Retina)[注意图标名称前缀]
  • AppIcon57x57@2x.png(iPhone Retina)

其他每个图标分辨率也采用相同的格式。

iPad

  • AppIcon72x72~ipad.png(iPad非Retina)
  • AppIcon72x72@2x~ipad.png(iPad Retina)

(对于iPad,它的后缀略有不同)


主要问题

现在我注意到,在Xcode 5.0.1中,当创建资源目录完成后,它自动尝试并失败地创建一个键“Icon files (iOS 5)”。

如果它成功地创建了一个引用 / 这可能已被Apple修补或只是有效,那么您所要做的就是查看图像名称以验证上述格式。

最终解决方案:

将以下键添加到您的主要.plist中。

我建议您使用外部文本编辑器(如TextWrangler)打开您的主.plist,而不是在Xcode中复制和粘贴以下键。

<key>CFBundleIcons</key>
<dict>
    <key>CFBundlePrimaryIcon</key>
    <dict>
        <key>CFBundleIconFiles</key>
        <array>
            <string>AppIcon57x57.png</string>
            <string>AppIcon57x57@2x.png</string>
            <string>AppIcon72x72~ipad.png</string>
            <string>AppIcon72x72@2x~ipad.png</string>
        </array>
    </dict>
</dict>

请注意,我只包含了我的示例分辨率,您需要添加所有分辨率。
如果您想在Xcode中添加此密钥而无需外部编辑器,请使用以下内容:
  • Icon files (iOS 5) - 字典
  • Primary Icon - 字典
  • Icon files - 数组
  • Item 0 - 字符串= AppIcon57x57.png 每个其他项目 / 应用程序图标都是如此。

现在当您最终归档项目时,最终的.xcarchive有效负载.plist将包括上述声明的图标位置以构建和使用。

请勿向任何.plist添加以下内容:这只是Xcode现在为您的最终有效负载生成的一个示例

<key>IconPaths</key>
<array>
    <string>Applications/Example.app/AppIcon57x57.png</string>
    <string>Applications/Example.app/AppIcon57x57@2x.png</string>
    <string>Applications/Example.app/AppIcon72x72~ipad.png</string>
    <string>Applications/Example.app/AppIcon72x72@2x~ipad.png</string>
</array>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接