Search code examples
iosinterface-builderiphone-6iphone-6-plusxcasset

Do I really have to explicitly support iPhone 6 and iPhone 6 Plus screens?


I couldn't get used to introduced in Xcode 6 new layout system called Size Classes, so I decided to go by the old way creating two separate xibs for iPhones and iPads with ~iphone and ~ipad suffixes correspondingly.

Xibs designed for iPhones (with view size in IB equal to 320x568) works perfectly for new iPhone 6 and iPhone 6 Plus screens, and iPhone 6 plus even loads @3x assets if I provide those.

The first question, do I really have to add launch storyboard to indicate that my app supports new iPhones, or I can go without it?

If I add them all my xibs designed for iPhone 4s / 5 will stop working for iPhone 6 and 6 plus.

The second question, do I really have to provide @3x assets set? iPhone 6 uses @2x assets set, iPhone 6 plus in case of the absence of @3x images upscales @2x images in a very smooth way so that I cannot determine any pixellation.

I'm interested, in particular, whether Apple will reject the app, or maybe not add some kind of "Optimized for iPhone 6 Plus" badge to the app, or any other penalties?


Solution

  • Using a launch file only works for iOS 8+, so if you're targeting iOS 7+, you'll still need static launch images to support iOS 7 anyway.

    Other than a few required launch images and icons, providing higher resolution images (e.g. @2x) within your app has always been optional.

    Use the scale modes on image views to automatically scale the images to fit.

    You'll need to provide static launch images or a launch file for the new iPhone 6 screens or your app won't get the "Optimized for iPhone 6" text on your app page in the App Store.