Enable iphone 6 resolution not enabling iphone 6 plus - ios

I am trying to support iPhone 6 resolution without supporting iphone 6 plus yet.
What I tried already is to add launch image for iphone 6 - Image.xcassets called Retina HD 4.7. Unfortunatelly simulator for 6 plus is reporting 2208x1242 screen size (already multiplied by 3). So 6 plus is supported with just 6 launch image.
I am wondering if its just a simulator bug or the same behavior is on actual iphone 6 plus device - I do not have access to such device yet.
Funny thing: when I added just launch images for 6 plus then simulator for 6 is not starting in 1334x750, instead its 960x640 (when retina 4 launch image is not provided) or 640x1136 (otherwise).
Anyone knows how to support just iPhone 6 resolution not iphone 6 plus?

Related

How to assign launch images in Xcode assets catalog?

Xcode's interface for assigning launch images into an assets catalog is rather confusing. Only 2 image slots are made available given the settings we've chosen (Portrait only, for iOS 8.0 and later) and yet the Apple docs list a variety of resolutions required for their various devices (6s, 6s Plus, 7, 7 Plus, etc.), 12 of them to be exact. I'm using Xcode 8.3 btw.
We are designing portrait images for commonly available devices, but how to assign them here? Notice pics below showing a confusing mismatch between the expected resolutions of images (straight from Apple docs) and the Xcode UI for assigning those images. There are only 6 slots available, and even if the Apple docs described only 6 images, it is impossible to tell which goes where.
EDIT: Deployment target is 8.3.
Depending on your deployment target, there's either 3 or 4 total resolutions you need to care about: 5.5" devices, 4.7" devices, 4" devices (e.g. iPhone SE), and if your deployment target is iOS 9 or below then 3.5" devices (e.g. iPhone 4S).
The "iOS 8.0 and Later" iPhone Portrait gives you the 5.5" and 4.7" devices. If you check the "iOS 7.0 and Later" iPhone Portrait option that will give you "2x" (which I believe is 3.5" devices) and "Retina 4" (which is 4" devices).
Using those 4 options you'll be able to cover all supported iPhones.
If you need iPad support, you can check the relevant iPad checkbox. However, it looks like the asset catalog doesn't offer a slot for either iPad Pro, I don't know why not. This answer suggests that for the iPad Pro you should ditch the asset catalog entirely and switch to free images and Info.plist keys.
You also don't need 12 images for 12 devices. A bunch of the devices share the same resolution. Here are the images you need:
2048x2732 - 12.9" iPad Pro
1668x2224 - 10.5" iPad Pro
1536x2048 - 9.7" iPad, 7.9" iPad mini 4
1242x2208 - iPhone 6s Plus, iPhone 7 Plus, iPhone 8 Plus
750x1334 - iPhone 6, iPhone 6s, iPhone 7, iPhone 8
640x1136 - iPhone 5, iPhone 5s, iPhone 5c, iPhone SE
640x960 - iPhone 4s
If you upgrade to Xcode 9 you'll also need an 1125x2436 image for the iPhone X.
If you would just use a launch storyboard like everyone else, you wouldn't be having any problem. You would just supply one launch storyboard: end of story.
EDIT As of iOS 13 and Xcode 11, this will soon be required. Launch images are dead. Your app must have a launch storyboard.

iPhone 7 and 7 Plus compatibility and showing compatibility in the app store

For iPhone 6, 6 Plus, we had to add LaunchScreen, splash image and few changes in settings that would show the app is compatible for iPhone 6 and 6 plus.
How the app will know device for new device ? Is it only with LaunchScreen ?
Does there any rules which will show iPhone 7, 7 plus compatibility in app store for this new device ?
For iPhone 6, 6 Plus, we had to add LaunchScreen, splash image and few changes in settings that would show the app is compatible for iPhone 6 and 6 plus.
This was only necessary because the iPhone 6 and 6+ had different screen resolutions than any previous iPhones. (The same thing also happened when the iPhone 5 came out.)
The iPhone 7 / 7+ have the same screen resolution as the iPhone 6 / 6+, so no changes to applications are needed.
Once your app has support for iOS 10 (and in your situation model: it was also previously compatible for iPhone 6 / 6S / Plus), yes, it is set to be compatible for iPhone 7 / 7 Plus.
The minimum iOS supported on the iPhone 7 is iOS version 10, that's way you have to support it in your project to be reachable by iPhone 7.

Use "375x667" in iPhone 6 Plus

My app is designed for iPhone 6 (375x667).
How can it auto scales to iPhone 6 plus?
i.e, still using frame (375x667) in the iPhone 6 plus screen
Thanks.

iPhone 6 Simulator not showing correct image

iPhone 6 simulator shows "bg#2x.png" image instead of "bg-667h#2x.png"
iPhone 6+ simulator is showing "bg#3x.png" image which is correct. Don't know whats the issue with iPhone6.
I have also added splash image for iPhone 6 "Default-667h#2x.png".
You need to have same prefix before # in the filenames for displaying them on iPhone 6 and iPhone 6+. E.g. if bg2014#3x.png was used for iPhone 6+, use bg2014#2x.png for iPhone 6, with respective resolution of course.
iPhone 6 is Default-375w-667h#2x.png when you don't want to use the Info.plist

Does iPhone 6 / 6 Plus simulator supports changing of Display Zoom mode?

How to change Display Zoom feature in iPhone 6 and 6 Plus simulators?
Original iPhone 6 and 6 Plus have this feature in Settings -> Display & Brightness -> Display Zoom (View) with values Standard and Zoomed.
As of Xcode 12 (and perhaps earlier) Settings -> Developer -> View -> Zoomed (tap Set) will adjust the simulator to show with Display Zoom. This is helpful as the iPhone 11 Pro, iPhone 12 mini, iPhone 12, and iPhone 12 Pro all run at a previously unused resolution of 320 x 693. For more information check out this excellent article by Geoff Hackworth.
Display Zoom is not available in the simulator (as of Xcode 6.0).
The answer is correct, Display Zoom is not available as an option in the current Xcode 7 iOS simulator settings. However, it is actually possible to 'simulate' Display Zoom when running your app in the simulator.
Background
When building a typical project for iPhone, you generally specify a LaunchScreen.storyboard file and/or launch images in Images.xcassets for the iPhone 4/4s (2x), iPhone 5/5s (Retina 4), iPhone 6/6s (Retina HD 4.7) and iPhone 6+/6s+ (Retina HD 5.5) and set those details in the project's settings. (See image below.)
When Display Zoom is turned ‘on’ for a iPhone 6/6s device, the device runs the app as if it was running on an iPhone 5/5s sized screen, upscaling the app x1.172 to fit the iPhone 6/6s display. (Similarly, when Display Zoom is turned ‘on’ for a iPhone 6+/6+s device, the device runs the app as if it was running on an iPhone 6/6s sized screen, upscaling the app to fit the iPhone 6+/6+s display.)
Note - The following instructions require the removal of some launch screen image files. You might wish to attempt these changes on a duplicate of your Xcode project.
Simulating Display Zoom on the iOS Simulator
To simulate Display Zoom for example using the iPhone 6 simulator in Xcode:
1 - Remove the LaunchScreen.storyboard file.
2 - Remove both the Retina HD 4.7 and Retina HD 5.5 launch images in Images.xcassets. (Make sure to keep the Retina 4 launch image.)
3 - Remove the reference to the ‘Launch Screen File’ in your Xcode project’s settings, under ‘General’, under ‘App Icons and Launch Images’.
4 - Select the iPhone 6/6s simulator, and then 'Run' your app.
Running your app
When the simulator runs your app, it will detect that no launch images are present for iPhone 6/6s, so it will presume it must be an iPhone 5/5s app and launch it into the simulator upsampling a iPhone 5/5s sized screen to fit the iPhone 6/6s screen, just as the Display Zoom setting would display it!

Resources