如何为iPhone 6和6 Plus上的应用程序启用本机分辨率?


194

Xcode 6 GM现在包括适用于iPhone 6和6 Plus的模拟器,默认情况下,它们以缩放模式运行应用程序。

为了启用新的屏幕尺寸,我尝试添加屏幕尺寸Default-667h@2x.png,这似乎是解决问题的一部分,因为该应用程序现在根本无法运行,并显示错误“无法在模拟器中运行该应用程序–运行时遇到错误(域= LaunchServicesError,代码= 0)”。

有谁知道如何使应用程序真正以6/6 +分辨率运行?


16
正如其他人所说,诀窍是在项目中添加合适大小的启动图像。我写了一个有关如何添加启动图像的快速指南,以便您可以在此处显示iPhone 6分辨率
matthewpalmer


2
iPhone 6/6 +的图像命名不同。对我而言,只需添加6和6+的启动图像即可。请看以下答案,以获取正确的命名约定:stackoverflow.com/a/27473877/1568532
2015年

除了使用LaunchScreen,还有其他选择吗?
Vaibhav Jhaveri'2

Answers:


220

您可以添加一个启动屏幕文件,该文件似乎适用于多种屏幕尺寸。我刚刚将MainStoryboard添加为启动屏幕文件,但该应用停止了扩展。我想以后需要添加一个永久的启动屏幕,但是这样可以提高本机分辨率并可以快速工作。在Xcode中,转到目标常规,然后在其中添加启动屏幕文件。

启动屏幕文件


2
如果您使用可处理所有设备的单个情节提要,这可能是最好的解决方案。如果您不使用单个故事板,或者需要单独的显式启动图像,则我的答案是合适的。
rmaddy14年

我需要为iPhone 6和6 Plus设置显式启动图像,如果我不想使用资产目录,是否有命名约定?
Radif Sharafullin 2014年

@Radif Sharafullin这里有一些有关如何命名启动映像的说明: developer.apple.com/library/prerelease/ios/documentation/iPhone/…。一直滚动到底部,以启动图像命名模式。
David L

6
请记住,一旦迁移到LaunchImage,iOS将不再将iPhone-5应用扩展到iPhone-6(和6+)。如果使用绝对大小(如320px的宽度)制作视图,而不使用自动布局使用相对大小,则这可能会破坏应用程序的UI。
atulkhatri 2014年

1
@ bobo2000快速设计。
mattsven 2015年

116

如果使用资产目录,请转到LaunchImages资产目录,并为两台新iPhone添加新的启动映像。您可能需要右键单击并选择“添加新启动图像”,以查看添加新图像的位置。

iPhone 6(Retina HD 4.7)需要750 x 1334的人像启动图像。

iPhone 6 Plus(Retina HD 5.5)需要纵向和横向图像,大小分别为1242 x 2208和2208 x 1242。


2
希望我可以选择两个正确的答案,因为这似乎非常正确。尚未开始使用资产目录(很好,只是尝试采用一个资产目录失败-某种程度上该应用程序未在其中找到启动图像),但是在此处分配启动屏幕文件是一个简单的解决方法。
villapossu 2014年

应该可以在不使用资产目录的情况下添加正确的启动映像。但是我不知道如何在Info.plist中引用它们。
rmaddy14 2014年

我是否需要实际添加图像?我打开了这些,并且它还在扩展。
史诗字节

是的,您实际上必须添加图像(或使用新的“启动屏幕文件”(但这仅适用于iOS 8)
。– rmaddy

1
@trumpetlicks plus将渲染到更大的目标,然后将渲染缩小到实际的屏幕尺寸,与视网膜MacBook Pro的技术相同。此外,Plus可以实际在横向模式下启动应用程序,其他iPhone则无法实现
hokiewalrus 2014年

104

我已经制作了基本的黑色启动屏幕,可以使应用程序在iPhone 6和iPhone 6+上正确缩放:

iPhone 6人像

iPhone 6 Plus人像

如果您的.xcassett中已经有LaunchImage,请将其打开,切换到Xcode右侧菜单中的第三个选项卡,然后勾选iOS 8.0 iPhone图像以将它们添加到现有集中。然后将图像拖到上方:

在此处输入图片说明


52

我不想介绍资产目录。

根据这里 seahorseseaeo 的回答,将以下内容添加到info.plist中对我有用。(我将其编辑为“源代码”。)然后将图像命名为Default-667h@2x.png和Default-736h@3x.png

<key>UILaunchImages</key>
<array>
    <dict>
        <key>UILaunchImageMinimumOSVersion</key>
        <string>8.0</string>
        <key>UILaunchImageName</key>
        <string>Default-667h</string>
        <key>UILaunchImageOrientation</key>
        <string>Portrait</string>
        <key>UILaunchImageSize</key>
        <string>{375, 667}</string>
    </dict>
    <dict>
        <key>UILaunchImageMinimumOSVersion</key>
        <string>8.0</string>
        <key>UILaunchImageName</key>
        <string>Default-736h</string>
        <key>UILaunchImageOrientation</key>
        <string>Portrait</string>
        <key>UILaunchImageSize</key>
        <string>{414, 736}</string>
    </dict>
</array>

这个答案很好。它允许轻松使用图像从启动屏幕过渡到应用程序。没有其他解决方案(资产目录或故事板)允许如此轻松地完成此操作。
jjxtra 2014年

7
为我工作(谢谢!),但是它停止识别568h @ 2x启动图像,从而取消了对iPhone 5尺寸的支持。我只需要添加与上面两个类似的另一个项目,但指定568h。(特定字段:Default-568h{320, 568}
Steph Thirion 2014年

同样适用于iPhone 4S。
乔什·伯恩菲尔德

1
刚刚(在模拟器上)感到指定的图像文件甚至不需要存在。
glasz 2014年

我在iPhone 6上对此技术有疑问:它首先显示启动屏幕Default-667h@2x.png,然后短暂显示Default-Portrait@2x~iphone.png。任何想法?
塞缪尔

21

请注意,如果在iPhone>“设置”>“显示和亮度”>“视图”中启用了“显示缩放”,则iPhone 6将使用320pt(640px)分辨率。


我希望可以更好地记录下来!
bobo2000

你刚刚救了我的一天。我尝试了所有其他解决方案,但问题仅在于设备处于“缩放”模式。
MessuKilkain

8

请执行以下操作(请参见照片)

  1. 转到资产目录
  2. 右键单击并选择“添加新的启动图像”

    • iPhone 6-> 750 x 1334
    • iPhone 6 Plus-> 1242 x 2208和2208 x 1242

在此处输入图片说明


3

运行时遇到错误(域= LaunchServicesError,代码= 0)

通常,这表明installd在安装过程中返回了错误(资源不足或类似问题)。

不幸的是,Xcode不会显示实际的潜在错误(可以对这个已知错误进行重复文件化)。

您应该检查〜/ Library / Logs / CoreSimulator / CoreSimulator.log,它将为您记录潜在的错误。


谢谢!尚未意识到这种对错误根本原因的额外了解。详细的日志并没有对我说太多,但至少我的雷达备案上有一些要附加的内容。
villapossu 2014年

0

如果您正在使用资产目录,并且有多个目标都使用同一个资产目录文件,请确保该文件已在xcode的右面板中选中了两个目标。

那是我的问题。

在此处输入图片说明

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.