iPhone - 多目标多启动图噩梦

5

我有一个项目,其中包含两个应用程序,每个应用程序都有iPhone和iPad两种版本。因此,该项目有4个目标。显然,它不是通用的。

为了简化事情,我们将每个应用程序称为AAA和BBB。

启动图像的命名如下:

AAA for iPhone

  • AAAiPhone.png
  • AAAiPhone@2x.png

AAA for iPad

  • AAAiPad-Portrait@2x.png
  • AAAiPad-Portrait.png
  • AAAiPad-Landscape@2x.png
  • AAAiPad-Landscape.png

BBB图像具有相同的名称结构,只是名称中的AAA被替换为BBB。

我已经将这个UILaunchImageFile添加到每个plist中,如下所示:

  • AAA for iPhone ... Launch Image (iPhone) = AAAiPhone.png
  • AAA for iPad ... Launch Image (iPad) = AAAiPad.png
  • BBB for iPhone ... Launch Image (iPhone) = BBBiPhone.png
  • BBB for iPad ... Launch Image (iPad) = BBBiPad.png

当我将图像拖到Xcode上的正确位置时,对于AAA来说一切都很好,但是当我为BBB做同样的操作时,它会覆盖所有AAA图像。它似乎忽略了info.plist中的信息。

有什么线索吗?

谢谢

4个回答

12
由于这些图片被重命名为Default.png(或另一个名称,对于每个目标都相同),所以会出现这种情况。
您需要按照以下方式进行操作:
为每个目标在plist中添加一个条目。 iPad:启动图像(iPad) iPhone启动图像(iPhone)

enter image description here

请为每个目标使用不同的字符串。 将带有该字符串的图像放置到资源文件中(还要确保仅在所需目标中激活所需的图像)。 示例
  • 目标1

    • plist:启动图像(iPad)= AAADefaultiPad
    • 放置文件:AAADefaultiPad@2x.png和AAADefaultiPad.png
  • 目标2

    • plist:启动图像(iPad)= BBBDefaultiPhone
    • 放置文件:AAADefaultiPhone@2x.png和BBBDefaultiPhone.png
编辑1: 将图像放置到图形资源中,就像将图像文件放置到其中一样。不要将其放置在目标“摘要”下的图像空间中。
对我来说效果很好。

不要将图像丢到“摘要”下的图像空间中。请将其作为资源中的文件放置!然后它就会正常工作 :) - Jonas Schnelli
好的谢谢,但是似乎只有当我添加一个名为“启动图片”的条目时才有效,而当条目为“启动图片(ipad)”时则无效。无论如何,谢谢! - Duck

3
我已经写好了说明文档,并附带了GitHub项目。

https://github.com/brennanMKE/MultipleTargets

要完全支持从单个Xcode项目进行多目标构建,需要处理许多步骤和细节。该示例解决了以下问题...

  1. 为每个构建目标设置唯一的应用程序标识符
  2. 设置唯一的启动图形
  3. 设置唯一的应用程序图标
  4. 使用自定义C标志来管理每个构建目标的不同功能

2

我在添加Retina图标和启动图像时遇到了多个目标(iPhone)X多个启动图像/多个图标的问题。为解决此问题,我需要在plist中进行以下操作:

  • 关于图标(低分辨率&Retina):在每个目标中,我删除了“Icon Files”(iOS 5)的条目,并添加了另一个(Icon file)。然后,我修改了这一行(Icon file)以将其变为Icon files(基本上,在单数形式下它是String类型,而在复数形式下它自动成为Array),并添加了图像文件引用,如下所示:

info.plist - Icons

  • 关于启动图像(低分辨率&Retina):我按照Jonas的建议做了,但使用具有Retina规格的图像(640 x 960)。它适用于低分辨率和高分辨率。

info.plist - Launch Image with hi-res png file


1

实际上很简单:

  1. 在plist中定义“启动图像”,使用你想要替换文件名中的“Default”字符串的字符串。例如,Default.png 变成 MyAppName.png。

  2. 只需创建与默认文件名相符合的文件名即可:

MyAppName.png

MyAppName@2x.png

MyAppName-568h@2x.png

MyAppName-Landscape@2x~ipad.png

MyAppName-Landscape~ipad.png

MyAppName-Portrait@2x~ipad.png

MyAppName-Portrait~ipad.png


非常感谢您的回答。我在这些图像上浪费了两个小时。苹果搞什么鬼? - Davyd Geyl

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