【问题标题】:How do you update the app icons and launch images to support IOS 6 and 7 simultaneously?如何更新应用程序图标和启动图像以同时支持 IOS 6 和 7?
【发布时间】:2013-09-08 14:16:42
【问题描述】:

我一直难以弄清楚如何从 Xcode5 发布一个在同一版本中支持 IOS7 和 IOS 6+ 的应用程序,其资产(图标和启动屏幕)可以正确加载,并且仍然为 IOS 6 渲染资产正确。我遇到的主要问题是试图让 IOS 6 仍然呈现图标而没有阴影或突出显示,因为 "prerendered" option 在 Xcode 5 的 GUI 中甚至不再可用。任何想法如何让所有内容和图标正确呈现并支持多个操作系统版本?

安德鲁

【问题讨论】:

  • 这在 Apple 开发者论坛中已经讨论了很多,请查看。
  • 向 app.plist 添加一个名为 UIPrerenderedIcon 且值为 TRUE 的字段
  • 正如@dthien 上面所说,您需要添加他提到的 plist 字段和二进制值。不过,出于某种原因,我不得不两次添加该字段进程,实际上是为了让 IOS 6 停止应用渲染效果。

标签: iphone ios xcode5


【解决方案1】:

Apple 对 IOS 7 应用程序的要求有clear guidelines,但即便如此,我还是遇到了错误,使单个应用程序支持多个操作系统版本。让它开始工作后,我想我会指出一些对我来说很重要的地方,以便将来帮助其他人。

我首先更新了我的整个应用程序以干净地支持 IOS 7,然后返回并启用以前的版本,但该过程不是必需的。

只需确保您首先设置正确的部署目标

一旦您设置了部署目标,Xcode5 就会很好地更改支持多个操作系统版本所需的默认资产列表。确保以所需的分辨率和所需的文件名重新上传正确版本的图标(IOS6-IOS7 支持如下所示)

对启动图像执行相同操作,注意您必须将启动图像重命名为新名称,如果您允许,Xcode 会尝试为您执行此操作。请注意下面的新尺寸,因为 IOS7 在状态栏后面扩展了启动图像背景。

最后,手动添加下面的两个 .plist 标志,您应该设置为让您的图标在 IOS 版本之间呈现一致,没有光泽(解释如下)

IOS7 在其新的平整度中删除了之前版本所做的后处理,它们为图标添加了高光和光泽效果。该效果不再适用于 IOS 7 应用程序,但如果您在 IOS 6 上从 Xcode5 加载应用程序,它将重新应用默认的光泽效果。这令人愤怒,因为 Xcode 中不再有“预渲染”GUI 标志来禁用该后处理。如上所述,您需要手动将标志添加到应用程序的 plist。就我而言,我必须在 两个位置 中添加标志来强制 IOS 6 停止应用效果。您可以通过直接打开文件或导航到项目概述中的设置来访问 plist。您可能需要从模拟器中卸载应用程序,然后重新构建应用程序以强制模拟器丢失旧图标的缓存。

【讨论】:

  • 在您的回答中,第一张图片适用于 iOS 6,第二张图片适用于 iOS 7。正确的?我应该使用与您使用的相同的应用程序图标名称吗?
  • @AJ112 如果您在谈论我的回复,是的,要在 Xcode 5 中支持 IOS 6,您需要选择它作为部署目标,如果您希望同一个应用程序支持,请在第二张图片中选择IOS 7(此时您应该)您需要提供这些图标以及这些尺寸和字符名称。
  • 有没有人不知道为什么iOS6和iOS7对iPhone启动图像的要求没有区别?我看到 iPad 肖像的不同之处在于确保您处理状态栏区域。为什么不用于 iPhone? iPad 风景也是如此。为什么 iOS 6 和 iOS7 的尺寸相同?
  • 我在 iPad 横向尺寸上的错误。它们不一样。所以看起来 iPhone 是一样的。
  • 这非常有用。非常感谢您的帮助。试想一下,当 Apple 发布 iPhone 5.5 英寸和 4.7 英寸手机时,我们将面临怎样的混乱局面。哇!
【解决方案2】:

只需使用“资产目录”(您可以从目标中的常规中选择)。

这将在您的项目上创建一个 images.xcassets,您可以轻松地拖动您的 iOS 7 之前和 iOS 7 的图标设计。

更新: 所以在 iOS 7 正式发布后,我现在可以这样写:

在资产目录本身上选择要设置为预渲染的 Appicon 集,然后转到 Attribute Inspector 并标记“iOS 图标已预渲染”。当然,您也可以在那里设置您想要支持的操作系统和设备(它会创建所有选项,因此您只需拖放即可进行设置)。

需要注意的重要一点是,由于某种原因,如果您在此目录中使用多个目标和多个集合,您必须手动添加目标成员。为此,只需标记“资产目录”文件,转到文件检查器并标记您要使用它的所有目标。我认为当您从目标设置中选择“资产目录”时,Apple 应该自动执行此操作,但在那之前我决定在这里提一下(花了我一个小时才弄清楚)。

【讨论】:

  • 看来您必须通过属性检查器执行此操作 - 通过直接编辑 Info.plist 文件执行此操作是不够的。当我按照@Idan 的指示进行操作时,它终于在 iOS6 上运行了。
  • @Rayfleck 我认为通过 Info.plist 您可以将所有图标设置为相同,这意味着支持 iOs 6 和 7,但两者的图标相同。使用资产目录,您可以为每个设置不同的图标。
【解决方案3】:

我最近经历过这个。似乎默认情况下它只显示以下内容。

简单的解决方法是添加一个新的 AppIcon

为您提供所有这些选项。

【讨论】:

  • 我喜欢这个解决方案,因为它很简单,很遗憾它不得不创建 AppIcon 的副本,从而搞砸了事情。
  • 你可以随意重命名它,也可以删除另一个。
  • @Smick 你不应该这样做。查看我的答案,您可以在原始 Appicon 资产上标记缺少的内容。
  • 你不需要这样做。只需单击 Xcode 栏打开右侧的“实用程序”面板并在那里编辑目标图标。 (请参阅下面的 Kodejacks 答案和截图)。
【解决方案4】:

我的经验:

当创建一个新的空应用程序时,它将创建一个“默认”应用程序图标/启动图像资产目录,如@Smick 所述,该目录不完整。

这个新“目录”的恼人之处在于它不显示图像尺寸。

要解决此问题,请在项目导航器上选择项目,然后在“常规”中,您会注意到 2 个区域 - 应用程序图标和启动图像。这些将指向资产目录。您可以将其更改为“不使用资产目录”。之后,界面将变为文件/维度列表。

但是这个界面有几个问题:

  1. 它应该只要求图像的视网膜版本(并计算法线,或者有两个链接,一个用于正常,另一个用于视网膜)。
  2. 需要重命名多个映像(启动映像)才能正常工作(系统会为您执行此操作)。
  3. 由于错误(iPad 纵向 iOS 7 和 iPad 横向 iOS 7,均为正常分辨率)而无法分配两个图像 - 您可以为它们指定一个图像,但该图像不会保留并会被取消选中当您插入下一张图片时。
  4. 指定的图像尺寸与 HIG 手册中所述的尺寸略有不同。
  5. 我非常不喜欢带有点的图像的“新”表示法(因为它们取决于设备,因此并不精确)。
  6. 如果您不想看到 iOS 6 重新应用图标上的“高亮/照明”,您需要在应用程序列表中添加一个键(项目经理 | 项目 | 信息。在那里,您可以添加一个键“图标已经包含光泽效果”。如果需要,您可能还需要在 iOS 5 图标上添加它。

【讨论】:

    【解决方案5】:

    如果您设置了资产目录,您可以打开它选择图像,然后转到检查器并勾选此框

    【讨论】:

    • 这个答案需要更多的支持!它用 1 块石头杀死 2 只鸟:指定预渲染属性并在发布时包括新的设备尺寸。
    • @ianthetechie 我同意,这是最好的答案。
    【解决方案6】:

    对于 Xcode 6

    对于 LaunchImage,您必须确保检查 iOS 6.0 及之前版本 iPhone (Portrait) 或 iPad // 取决于您的项目配置

    尺寸

    Default.png (320x480) 
    Default@2x.png (640x960) 
    Default-568h@2x.png (640x1136)
    

    AppIcon

    相同

    【讨论】:

      猜你喜欢
      • 2013-09-17
      • 1970-01-01
      • 2015-12-10
      • 1970-01-01
      • 2015-03-26
      • 1970-01-01
      • 1970-01-01
      • 2013-11-04
      • 1970-01-01
      相关资源
      最近更新 更多