28

What I understood from the available documentation and my testing is that

  1. All existing Apps on iPhone 6 and 6 Plus run in compatibility mode, which means the APIs (like [UIScreen mainScreen].bounds) will return 320x568 (iPhone 5/5s) still in new iPhones (6/6 Plus) and all UI is scaled to the correct resolution by iOS.

  2. To support iPhone 6/6Plus we need to create xib for Launch Screen (File->New->File->UserInterace->Launch Screen) and set the nib file as "Launch Screen File".

  3. We can set different images for launch screen inside Launch screen nib file based on avaialble size classes. [Basically combinations of Any, regular and compact]

  4. There is no way to differentiate between iPad in portrait and iPad in Landscape orientation (both are regular width regular height). Also there no way to differentiate between iPhone 4/4s and iPhone 5/s.

Is there a way I can support iPhone 6/6 Plus mode and also provide different launch images for iPad in portrait and iPad in landscape orientation?

See also the similar problem here iOS 8 size classes for iPad landscape

Community
  • 1
  • 1
msk
  • 8,885
  • 6
  • 41
  • 72
  • if you name the iPhone 6 files with @3x my understanding is that it uses the best possible resolution available for your device. – logixologist Sep 17 '14 at 19:29
  • I have launch screen with name "LaunchImage-800-Portrait-736h@3x" added in my project but still the App is running in compatibility mode in iPhone 6 Plus. – msk Sep 17 '14 at 20:00
  • better use approach from accepted answer here - http://stackoverflow.com/questions/25926661/how-do-i-create-launch-images-for-iphone-6-6-plus-landscape-only-apps – Denis Kozhukhov Oct 17 '14 at 08:09

2 Answers2

34

You don´t have to use the launch screen file to make your App iPhone 6 / 6+ resolution compatible. Instead, you can select the LaunchImage asset as your Launch Images Source.

It can be found at "App Icons and Launch Images" under your Targets:

enter image description here

If there is no LaunchImage asset just go to your Images.xcassets, make a secondary click (right click) and select "New Launch Image":

enter image description here

The result is something like that:

enter image description here

Now just drag and drop your images for the specific resolutions you want to support and set the created LaunchImage asset as your source.

Hope it helps

Cheers

HorseT
  • 6,592
  • 2
  • 18
  • 16
  • 1
    this i already did but still my app is ruuning on compatibility mode in iPhone 6 plus – msk Sep 23 '14 at 06:26
  • 4
    Well, I just have the ability to test it on a iPhone 6 and this is all I had to do to support the new resolution. Did you also updated your app icon to support @3x? – HorseT Sep 23 '14 at 07:43
  • @HorseT, that's a great tip that you actually DO NOT NEED a launch screen file. Thanks for that. – Fattie Oct 01 '14 at 11:45
  • Notice: if you keep launchscreen.xib , this launchimage in assets will be ignored in ios 8+ devices. – Özgür Aug 29 '15 at 06:15
24

Asset catalogues currently work in landscape mode on iPhone on . I had this reponse from apple support:

"There is a bug involving launch images in asset catalogs and apps that launch in landscape on iPhone. Behind the scenes, the asset catalog compiler generates the same UILaunchImages key [1] in the final Info.plist that you would have added when you were specifying launch images manually. One of the sub-keys for each launch image specified under the UILaunchImages key is UILaunchImageOrientation which is always set to Portrait by the asset catalog compiler. This makes sense because apps on iPhone always launch in portrait orientation [2]. However, the iOS app launcher decides that since your UISupportedInterfaceOrientations only contains UIInterfaceOrientationLandscapeLeft and UIInterfaceOrientationLandscapeRight, it will only look for landscape launch images under the UILaunchImages key, of which it finds none.

Since there is no way to force the assets catalog compiler to specify Landscape for the UILaunchImageOrientation sub-key of iPhone launch images, you should continue to specify your launch images by editing the information property list for your app as before."

Nahuel Ianni
  • 3,177
  • 4
  • 23
  • 30
Alan Taylor
  • 241
  • 1
  • 2
  • has there been any info on when the known bug is going to be fixed ? – NikkyD Oct 21 '14 at 11:47
  • 1
    I've been searching endlessly to understand this issue. This was the most useful information that I've seen. It explains WHY the plist hack that everyone's suggesting is safe and why it works. – cjserio Dec 06 '14 at 13:20