Landscape launch image on Iphone

In this archived post, Rob stated that landscape launch images are not supported on Iphone anymore.

I got the same symptom as the OP just now. The landscape launch image is applied correctly on Android. Apple says it’s supported.

I’m mainly wondering if the information in the thread that I should provide a portrait launch image for Iphone is still correct, or is there a solution supporting landscape launch images? 

My app is made to be used only in LandscapeRight. Will I have to specify something platform-specific to make it work correctly both on Iphone and Android? Since Android applies Landscape already on the splash screen and Iphone doesn’t.

   orientation = {default = "landscapeRight", supported = { "landscapeRight", } },

Just to be clear. Android does not support launcher images. Older versions of Corona hacked it in to use the iOS Default.png and Default@2x.png images if they existed, but never used any other images. We dropped all of that with the Splash Screen Control plugin.

The splash screen control image should work the same on iOS and Android today. They should work in whatever orientation your device is set to work at.

In iOS there is a Launcher image that shows before Corona can show anything. This is the UILaunchImage. Prior to iOS 10, you could provide various .png files and the right code in the info.plist (coming from build.settings) and it would draw an image (intended to mimic your first screen) before the app launches.

Phones other than the “Plus” models have never supported the concept of a Landscape version. iPads and the Plus models do. But starting with iOS 10, Apple simplified things. With the various .png files setup for iOS 9 and earlier, you had to create dozens of these files in specific shapes, sizes and orientations. Now Apple uses an Xcode storyboard, which uses 3 orientation agnostic images and you should not run into any orientation issues.

So forget about launch images. Look at our samples that ship with the latest public build (or latest daily builds) and see how they are setup. Or do a File->New Project in the simulator and copy the build.settings and files from that project to get you started.

Read this guide:  http://docs.coronalabs.com/guide/distribution/launchFile/index.html

Also please separate the concepts of the iOS Launch image, and the Corona Splash Screen Control. They are different:

iOS:  UI Launch Image -\> Corona Splash Screen -\> Your first screen Android:  Corona Splash Screen -\> Your first screen

Rob

I understand the concepts, but Apple’s documentation still says all apps require a launch screen. As I understand it, you’re saying that everyone can ditch the .pngs, and the Corona Splash Screen will become an orientation-agnostic XCode storyboard in IOS 10 and up?

If true, it’s great news, of course. I confess I’ve always provided launch images (because apps have been rejected otherwise), and it’s only now that I wanted to launch in Landscape that the question popped up.

So is life easier now? Or will I have to follow the guide you linked :stuck_out_tongue: This much work for something that’s shown for less than a second is difficult to budget.

That is not what I’m saying at all. You still have to have a UI Launch image setup. You can dump the PNGs and use Xcode storyboards instead. UI Launch images have absolutely nothing to do with the Splash screen.  The splash screen is a feature that runs inside of Corona *AFTER* the UI Launch image has been displayed.

I suggest, to keep this simple, create a new project with Corona. You should find this in build.settings:

 -- -- iOS section -- iphone = { xcassets = "Images.xcassets", plist = { UIStatusBarHidden = false, UILaunchStoryboardName = "LaunchScreen", }, },

Note the line:  UILaunchStoryboardName line in the plist section. You will also find a folder named “LaunchScreen.storyboardc”. This is a compiled Storyboard file that produces a solid black UI LaunchImage setup. You can deploy with this and no other changes. Just make sure this bit is in build.settings and the .storyboardc folder is in the root folder of your project.

Now if you want to have a custom UI Launch Image that shows something before your Splash Screen Control image, then you will need to use Xcode to make a new LaunchScreen.storyboard file and compile it to a .storyboardc file using Xcode.  You can follow our guide here:

http://docs.coronalabs.com/guide/distribution/launchFile/index.html

You can download a starter Storyboard project, add you’re own PNG’s to the project. You need to provide three images, a 1x, an 2x and a 3x image, and then compile it to a .storyboardc file, drop the .storyboardc folder in your project and the three PNG files and you should be good to go.

It’s all documented in that link.

Rob

Just to be clear. Android does not support launcher images. Older versions of Corona hacked it in to use the iOS Default.png and Default@2x.png images if they existed, but never used any other images. We dropped all of that with the Splash Screen Control plugin.

The splash screen control image should work the same on iOS and Android today. They should work in whatever orientation your device is set to work at.

In iOS there is a Launcher image that shows before Corona can show anything. This is the UILaunchImage. Prior to iOS 10, you could provide various .png files and the right code in the info.plist (coming from build.settings) and it would draw an image (intended to mimic your first screen) before the app launches.

Phones other than the “Plus” models have never supported the concept of a Landscape version. iPads and the Plus models do. But starting with iOS 10, Apple simplified things. With the various .png files setup for iOS 9 and earlier, you had to create dozens of these files in specific shapes, sizes and orientations. Now Apple uses an Xcode storyboard, which uses 3 orientation agnostic images and you should not run into any orientation issues.

So forget about launch images. Look at our samples that ship with the latest public build (or latest daily builds) and see how they are setup. Or do a File->New Project in the simulator and copy the build.settings and files from that project to get you started.

Read this guide:  http://docs.coronalabs.com/guide/distribution/launchFile/index.html

Also please separate the concepts of the iOS Launch image, and the Corona Splash Screen Control. They are different:

iOS:  UI Launch Image -\> Corona Splash Screen -\> Your first screen Android:  Corona Splash Screen -\> Your first screen

Rob

I understand the concepts, but Apple’s documentation still says all apps require a launch screen. As I understand it, you’re saying that everyone can ditch the .pngs, and the Corona Splash Screen will become an orientation-agnostic XCode storyboard in IOS 10 and up?

If true, it’s great news, of course. I confess I’ve always provided launch images (because apps have been rejected otherwise), and it’s only now that I wanted to launch in Landscape that the question popped up.

So is life easier now? Or will I have to follow the guide you linked :stuck_out_tongue: This much work for something that’s shown for less than a second is difficult to budget.

That is not what I’m saying at all. You still have to have a UI Launch image setup. You can dump the PNGs and use Xcode storyboards instead. UI Launch images have absolutely nothing to do with the Splash screen.  The splash screen is a feature that runs inside of Corona *AFTER* the UI Launch image has been displayed.

I suggest, to keep this simple, create a new project with Corona. You should find this in build.settings:

 -- -- iOS section -- iphone = { xcassets = "Images.xcassets", plist = { UIStatusBarHidden = false, UILaunchStoryboardName = "LaunchScreen", }, },

Note the line:  UILaunchStoryboardName line in the plist section. You will also find a folder named “LaunchScreen.storyboardc”. This is a compiled Storyboard file that produces a solid black UI LaunchImage setup. You can deploy with this and no other changes. Just make sure this bit is in build.settings and the .storyboardc folder is in the root folder of your project.

Now if you want to have a custom UI Launch Image that shows something before your Splash Screen Control image, then you will need to use Xcode to make a new LaunchScreen.storyboard file and compile it to a .storyboardc file using Xcode.  You can follow our guide here:

http://docs.coronalabs.com/guide/distribution/launchFile/index.html

You can download a starter Storyboard project, add you’re own PNG’s to the project. You need to provide three images, a 1x, an 2x and a 3x image, and then compile it to a .storyboardc file, drop the .storyboardc folder in your project and the three PNG files and you should be good to go.

It’s all documented in that link.

Rob