5

我有一个项目有 2 个应用程序,每个应用程序有两种风格,iPhone 和 iPad。因此,该项目有 4 个目标。显然不是通用的。

为了简单起见,我们将每个应用程序称为 AAA 和 BBB。

启动图像的名称如下:

iPhone AAA

  • AAAiPhone.png
  • AAAiPhone@2x.png

iPad AAA

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

BBB 图像具有相同的名称结构,名称中使用 BBB 而不是 AAA。

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

  • AAA for iPhone ... 启动图像 (iPhone) = AAAiPhone.png
  • AAA for iPad ... 启动图像 (iPad) = AAAiPad.png
  • BBB for iPhone ... 启动图像 (iPhone) = BBBiPhone.png
  • BBB for iPad ... 启动图像 (iPad) = BBBiPad.png

当我将图像拖到 Xcode 上的正确占位符时,它适用于 AAA,但是当我为 BBB 这样做时,它会覆盖所有 AAA 图像。它似乎忽略了 info.plist 信息。

有什么线索吗?

谢谢

4

4 回答 4

12

这是因为图像被重命名为 Default.png(或每个目标的另一个名称)。

你需要这样做:

在您的 plist 中为每个目标添加一个条目。iPad:启动图像 (iPad) iPhone 启动图像 (iPhone)

在此处输入图像描述

为每个目标使用不同的字符串。将带有该字符串的图像放置到您的资源文件中(还要确保在所需的目标中只有所需的图像处于活动状态)。

示例

  • 目标 1

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

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

编辑 1: 像将图像文件放置到图形资源中一样放置图像。不要将它放在目标“摘要”下的图像空间中。

对我来说效果很好。

于 2012-04-07T18:32:37.723 回答
3

我已经编写了说明以及 GitHub 项目。

https://github.com/brennanMKE/MultipleTargets

为了完全支持单个 Xcode 项目的多个目标构建,您需要处理许多步骤和细节。该样本地址...

  1. 每个构建目标的唯一应用标识符
  2. 独特的发射图形
  3. 独特的应用程序图标
  4. 自定义 C 标志来管理每个构建目标的不同功能
于 2012-12-18T01:05:03.217 回答
2

当我不得不添加 Retina 图标和启动图像时,我遇到了关于多个目标(iPhone)X 多个启动图像/多个图标的问题。为了解决这个问题,我必须在 plist 中执行以下操作:

  • 关于图标(低分辨率和视网膜):在每个目标中,我删除了条目图标文件(iOS 5),并添加了另一个(图标文件)。然后我将此行(图标文件)修改为图标文件(基本上,单数类型为字符串,复数自动变为数组),并添加图像文件引用,如下所示:

info.plist - 图标

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

info.plist - 使用高分辨率 png 文件启动图像

于 2012-09-24T19:13:29.910 回答
1

其实很简单:

  1. 在 plist 中使用要替换文件名中的“默认”的字符串定义“启动图像”。Default.png 变为 MyAppName.png 等。

  2. 只需创建符合默认文件名的文件名,例如:

我的应用程序名称.png

MyAppName@2x.png

MyAppName-568h@2x.png

MyAppName-Landscape@2x~ipad.png

MyAppName-横向~ipad.png

MyAppName-Portrait@2x~ipad.png

MyAppName-Portrait~ipad.png

于 2013-08-26T07:23:29.883 回答