Avoiding iOS8 upscaling on iPhone 6 and 6+

A quick technical note that left us scratching our heads yesterday as we prepare Hum for delivery to the gigantophones:

Without specifying an iPhone 6 or 6+ launch image, iOS will simply scale your app up to fit the new screen sizes. It will look terrible, and you will cry. Especially since you spent all this time converting your app to use Auto Layout.

It’s easy to miss this requirement in Xcode, because your LaunchImage.xcassets file won’t show you the new drop targets automatically. The way we approached it was to create a new LaunchImage.xcassets and add launch images of proper resolution. Once you do so, your Auto Layout will kick in appropriately and all that work will actually get used.

For iPhone 6, you’ll need a launch image resolution of 750 × 1334. You’ll drop that in the Retina HD 4.7 bucket.

For iPhone 6+ you’ll need a launch image of 1242 ×2208 (which gets scaled down to 1080 × 1920). You’ll drop that in the Retina 5.5 bucket.

Our LaunchImage.xcassets file ended up looking like this.

LaunchImage.xcassets

LaunchImage.xcassets

Finally, if you’ve added a new .xcassets file for this, you’ll want to make sure that your app is pointing to it correctly.

Click on your project settings and make sure the App Icons and Launch Images section has the right source:

Make sure your .xcassets is linked properly.

Before & After

Scaled Up

Scaled Up

Fixed

Fixed