23

I'm trying to finish my first iOS app up for submission and I'm just getting really confused here. The documentation is telling me I need a launch image and giving me the dimensions for iPhone 6 and 6+ but then clearly says in a couple places that "The launch XIB or storyboard is required to support iPhone 6 sized apps."

I'm confused to no end here. Why am I including launch images if I need a "launch storyboard"? I haven't even figured out what a launch storyboard is yet...

temporary_user_name
  • 35,956
  • 47
  • 141
  • 220
  • 4
    launch XIB and launch storyboard does not work in lower versions than iOS 8. If your deployment target is lower than iOS 8, you should use launch images in different sizes. Check this question: http://stackoverflow.com/questions/27310423/how-to-support-various-iphone-screen-sizes-as-of-2014 – wcd Jan 17 '15 at 12:35
  • 3
    Lol that question was also asked by me – temporary_user_name Jan 17 '15 at 21:15
  • 1
    huh... I didn't notice that. Anyway, all you need to know is that launch xib/storyboard only works in iOS 8. You don't need to provide launch images if your app is targeted iOS 8. Apple docs can make people really confused sometimes. – wcd Jan 17 '15 at 21:25
  • 1
    What if I'm targeting iOS6 and up? – temporary_user_name Jan 17 '15 at 21:43
  • 1
    then only option is launch images in different resolutions. launch images works in iOS 8 too. – wcd Jan 17 '15 at 21:44
  • Note that if you are upgrading your app to iOS 8 or higher and want to change to a launch storyboard from a launch image then in addition to adding the storyboard you also have to select it in Targets -> App Icons and Launch Images -> Launch Screen file. – Reefwing Nov 25 '15 at 06:05

2 Answers2

17

If you're developing with Xcode 6 and for iOS 8 exclusively, then you should use launch storyboards, which avoid the need to provide several launch images at different sizes.

This storyboard is automatically generated by Xcode 6 when starting a new project, but you might have been using an older project template.

See here for how to create a launch storyboard using Xcode 6: http://oleb.net/blog/2014/08/replacing-launch-images-with-storyboards/

Please note that you can also use a regular, "single" XIB file instead of a whole storyboard if you like. I think the Xcode 6 project templates use XIB files for that purpose.

Unfortunately, if your app is also targeting older versions of iOS (even iOS 7), you'll have no other option than also including launch images for all iPhone devices (except iPhone 6, which doesn't run these versions of iOS, obviously). This is a pain, but Apple made the right move by providing this new feature for future developments.

Romain
  • 3,718
  • 3
  • 32
  • 48
  • So the launch storyboard is all I need to cover all iPhone and iOS versions? – temporary_user_name Jan 17 '15 at 20:13
  • No, not all iOS versions unfortunately. Launch storyboards are new to iOS 8. If you want to target older versions, you will still need to provide launch images for up to iPhone 5S devices. – Romain Jan 17 '15 at 22:24
  • So to support everything, I need both. Sigh. – temporary_user_name Jan 18 '15 at 01:36
  • I've updated my answer to make it clearer. Good luck with your launch images! Have a look at this tool and see if it helps: http://ticons.fokkezb.nl – Romain Jan 18 '15 at 07:58
  • I followed the instructions from the lib (oleb.net) but testing on the device I get a black screen when launching - even for new projects. Does the launchscreen.storyboard need viewcontroller code? – mogoman May 26 '15 at 15:27
  • appears to be xcode bug https://forums.xamarin.com/discussion/38086/launchscreen-storyboard-appears-black – mogoman May 26 '15 at 15:45
2

From your comment under @Romain's answer,

So to support everything, I need both.

No, if you need to support everything, use launch images. If your app ships with launch images and use them to display launch screen, then no need to provide launch xib/storyboard. An app can only use one way to display launch screen.

wcd
  • 1,144
  • 8
  • 15
  • I'm not sure you are right. As I've read the xib lanuchimage is the indication for iOS 8 to NOT to scale the app (in iPhone 6 and 6+), so you really should do both. – Paweł Brewczynski Jan 21 '15 at 04:49
  • I only used launch images. My app works fine in different devices. Where did you read that? Do you have any source? @PaulBrewczynski – wcd Jan 21 '15 at 05:03
  • Are you sure it works and it is NOT scaled? Quote: "IMPORTANT You use a launch XIB or storyboard file to indicate that your app runs on iPhone 6 Plus or iPhone 6." https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/MobileHIG/LaunchImages.html – Paweł Brewczynski Jan 21 '15 at 05:08
  • Yes, I'm sure it is **NOT** scaled and I definitely know what I'm talking about. Why don't you test it yourself? @PaulBrewczynski – wcd Jan 21 '15 at 05:24
  • I'm using both in my app, but iOS 8 and up will use the Storyboard by default. iOS 7 and down will use the images. So, if you plan to support iOS 7 and up **only**, you need to support the static brand assets (launch images) for @2x (640x960: Retina 3.5... iPhone 4/4s running iOS 7) and Retina 4 (640x1136: iPhone 5 running iOS 7). All other devices/versions will use the LaunchScreen storyboard. – Alejandro Iván Nov 05 '15 at 16:22
  • There is a reason now, Launch Images are being deprecated and will be completely removed in the future.a – Mike Flynn Dec 11 '19 at 13:52