为什么默认的 xcassets LaunchImage 不支持开箱即用的 iPhone5?

Why doesn't default xcassets LaunchImage support iPhone5 out of the box?

我正在尝试在我打算为 iOS 设备部署的本机反应应用程序上设置启动画面。

众所周知,有几种不同的屏幕可供选择(因像素密度、宽高比和其他因素而异),因此我必须提供一些图像。似乎至少有三种方法可以提供允许 iOS 决定在任何情况下使用哪个图像的映射; 据我了解,这些方法中的任何一个 本身就足够了:

  1. 将所有图片文件放在Xcode项目的根目录下,按照特定的约定命名(Default.pngDefault@2x~ipad.pngDefault-568h@2x.png等)
  2. 在项目的 Info.plist 中定义一个 UILaunchImages 字典项,每个场景都有一个指向所需图像的字典条目
  3. 在资产目录中创建类型为 "LaunchImage" 的项目,将图像拖放到每个场景的占位符上,然后指向项目目标 "App Icons and Launch Images" 中的 LaunchImage 项目配置

我强烈倾向于使用第三种方法,这在很大程度上是因为就定义每个显示场景的识别特征而言,它需要的技术精度最低。但是当我在我的 iPhone5 上测试时它不起作用——初始屏幕是黑色的,而不是显示我的彩色图像。我在 LaunchImage 板上的每个位置都放置了一个图像,这表明 Xcode6 附带的 LaunchImage 骨架根本没有与 iPhone5 相对应的位置。那是不对的。 (是的,我的图像是 PNG。)

很多教程告诉我在资产目录中创建一个新的图像集(它有不同的骨架),但是 "App Icons and Launch Images" 配置只允许我选择 LaunchImages 项目。

有很多在线资源记录了前两种方法——即依赖文件系统约定,或在 Info.plist 中定义映射——但似乎没有真正解决资产目录方法.

有人能指出我正确的方向吗?


编辑:有趣的是,当我把我的@1x 图像放在 LaunchImage 板上的每个位置时,项目无法构建,因为 "there is no applicable content." 当我把我的@所有 Retina 点的 2x 图像,应用程序构建,但初始屏幕是黑色的。

这是否揭示了什么?

经过一些试验,结果是 phone 默默地拒绝了分配给该场景的图像,因为图像尺寸不正确。我提供的图像比适当的略大,显然 iOS 处理此问题的方式是显示黑色启动屏幕,而不发出任何有用的诊断信息。

我从 this SO post 得到了准确的尺寸。