ChatGPT解决这个技术问题 Extra ChatGPT

如何为 iPhone 6 和 6 Plus 上的应用启用原生分辨率?

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

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

有没有人想出如何让应用程序真正以 6/6+ 分辨率运行?

正如其他人所说,诀窍是为您的项目添加合适大小的启动图像。我在此处编写了 how to add a launch image so that you can display iPhone 6 resolution 的快速指南。
iphone 6/6+ 的图像命名不同。对我来说,只需添加 6 和 6+ 的启动图像就可以完美地工作。查看此答案以了解正确的命名约定:stackoverflow.com/a/27473877/1568532
除了使用 LaunchScreen 之外,还有其他选择吗?

D
David L

您可以添加看起来适用于多种屏幕尺寸的启动屏幕文件。我刚刚将 MainStoryboard 添加为启动屏幕文件,这阻止了应用程序的缩放。我想我稍后需要添加一个永久启动屏幕,但这可以提高原始分辨率并快速运行。在 Xcode 中,转到您的目标,一般并在那里添加启动屏幕文件。

https://i.stack.imgur.com/I8W4u.png


如果您使用处理所有设备的单个故事板,这可能是最好的解决方案。如果您不使用单个故事板或者您需要单独的、明确的启动图像,我的回答是合适的。
我需要为 iPhone 6 和 6 Plus 设置明确的启动图像,如果我不想使用资产目录,是否有命名约定?
@Radif Sharafullin 这里有一些关于如何命名启动图像的说明:developer.apple.com/library/prerelease/ios/documentation/iPhone/…。一直滚动到底部以获取启动图像命名模式。
请记住,一旦您迁移到 LaunchImage,iOS 将不再将您的 iPhone-5 应用扩展到 iPhone-6(和 6+)。如果您使用绝对大小(例如宽度为 320 像素)而不使用自动布局使用相对大小来制作视图,这可能会破坏您的应用程序的 UI。
@bobo2000 响应式设计。
r
rmaddy

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

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

iPhone 6 Plus (Retina HD 5.5) 需要尺寸分别为 1242 x 2208 和 2208 x 1242 的纵向和横向图像。


希望我能选择两个正确的答案,因为这看起来都非常正确。还没有开始使用资产目录(好吧,只是尝试采用一个但没有成功——不知何故,应用程序没有在那里找到启动图像),但在这里分配启动屏幕文件是一个简单的解决方法。
应该可以在不使用资产目录的情况下添加正确的启动图像。但我不知道如何在 Info.plist 中引用它们。
我需要实际添加图像吗?我打开了这些,它仍然在缩放。
是的,您必须实际添加图像(或使用新的“启动屏幕文件”(但这仅适用于 iOS 8)。
@trumpetlicks Plus 渲染到更大的目标,然后将渲染缩小到实际屏幕尺寸,与视网膜 MacBook Pro 的技术相同。此外,Plus 实际上可以横向启动应用程序,这是其他 iPhone 无法做到的
A
Andrew

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

iPhone 6 Portrait

iPhone 6 Plus Portrait

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

https://i.stack.imgur.com/iHy2a.png


W
William Jockusch

我不想介绍资产目录。

根据 seahorseseaeo here 的回答,将以下内容添加到 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>

这个答案很棒。它允许使用图像轻松地从启动屏幕过渡到应用程序。没有其他解决方案(资产目录或故事板)可以如此轻松地完成此操作。
为我工作(谢谢!)但它停止识别 568h@2x 启动图像,停用 iphone 5 尺寸支持。我只需要添加另一个类似于上述两个但指定 568h 的项目。 (具体字段:Default-568h{320, 568}
这同样适用于 iPhone 4S。
刚刚(在模拟器上)体验到指定的图像文件甚至不需要存在。
我在 iPhone 6 上遇到了这种技术的问题:它首先显示启动屏幕 Default-667h@2x.png,然后简要显示 Default-Portrait@2x~iphone.png。任何想法?
t
tomi44g

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


我希望这有更好的记录!
你刚刚拯救了我的一天。我尝试了所有其他解决方案,但我的问题只是设备处于缩放模式。
U
Umar Farooq

执行以下操作(见照片)

转到资产目录右键单击并选择“添加新启动图像”iPhone 6 -> 750 x 1334 iPhone 6 Plus -> 1242 x 2208 和 2208 x 1242

https://i.stack.imgur.com/euVqI.png


J
Jeremy Huddleston Sequoia

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

通常这表明 installd 在安装过程中返回了错误(资源错误或类似情况)。

不幸的是,Xcode 没有显示实际的底层错误(请随意归档这个已知错误的欺骗)。

您应该检查 ~/Library/Logs/CoreSimulator/CoreSimulator.log 它将为您记录底层错误。


谢谢!不知道这种对错误根本原因的额外洞察。详细的日志对我来说并没有说太多,但至少我有一些东西可以附加到我的雷达文件中。
l
luky

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

那是我的问题。

https://i.stack.imgur.com/pC8TS.png