如何让仅支持iPhone的iOS11应用在iPad上不采用iPhone 4宽高比
解决iPad上iPhone应用强制使用iPhone 4宽高比渲染的问题
这个问题我之前帮朋友处理过——当纯iPhone应用在iPad上运行时,如果iOS找不到明确的屏幕适配配置,就会默认回退到iPhone 4的3:2宽高比来缩放显示,确实很影响体验。不过有两个非常简便的方法可以解决这个问题:
方法一:改用Launch Screen Storyboard(最推荐)
这是苹果现在主推的适配方式,既能解决iPad上的比例问题,还能一劳永逸适配所有iPhone屏幕:
- 打开Xcode项目,进入
General标签页,在App Icons and Launch Images区域,把Launch Screen File设置为你的LaunchScreen.storyboard(如果还没有的话,直接新建一个即可)。 - 删掉项目里所有旧的静态启动图配置,确保没有残留的
Launch Images设置。
当iOS检测到应用使用了自适应的Launch Screen,就会自动采用更贴合现代iPhone的宽高比(比如16:9)来渲染应用,不会再默认用iPhone 4的比例。
方法二:在Info.plist中明确指定支持的iPhone屏幕尺寸
如果你坚持用静态启动图,可以在Info.plist里添加UILaunchImages数组,明确列出你支持的iPhone屏幕规格,告诉iOS不要回退到旧尺寸:
<key>UILaunchImages</key> <array> <!-- iPhone 8/7/6s/6 系列 --> <dict> <key>UILaunchImageMinimumOSVersion</key> <string>11.0</string> <key>UILaunchImageName</key> <string>LaunchImage-800-667h</string> <key>UILaunchImageOrientation</key> <string>Portrait</string> <key>UILaunchImageSize</key> <string>{375, 667}</string> </dict> <!-- iPhone 8 Plus/7 Plus/6s Plus/6 Plus 系列 --> <dict> <key>UILaunchImageMinimumOSVersion</key> <string>11.0</string> <key>UILaunchImageName</key> <string>LaunchImage-800-Portrait-736h</string> <key>UILaunchImageOrientation</key> <string>Portrait</string> <key>UILaunchImageSize</key> <string>{414, 736}</string> </dict> <!-- iPhone X/XS/11 Pro 系列 --> <dict> <key>UILaunchImageMinimumOSVersion</key> <string>11.0</string> <key>UILaunchImageName</key> <string>LaunchImage-1100-Portrait-2436h</string> <key>UILaunchImageOrientation</key> <string>Portrait</string> <key>UILaunchImageSize</key> <string>{375, 812}</string> </dict> </array>
添加这段配置后,iOS会优先使用你指定的屏幕尺寸来渲染应用,在iPad上就会采用这些现代iPhone的宽高比,而不是iPhone 4的3:2。
补充说明
如果你想完全禁止iPad用户下载应用,可以在App Store Connect的应用设置里把设备限制为仅iPhone,但这和你允许iPad运行但要正确比例的需求不符,所以只是个额外选项。
内容的提问来源于stack exchange,提问作者Georg
相关产品推荐
相关产品推荐

