(Solved) Can't get UILaunchImages to work, iOS 8 / iPhone 5

Created a sample portrait-only app. Tested on both an iPhone 5 running iOS 8.0.2 as well as an iPhone 5s running iOS 7.1.2. I get the correct splash screen and tall mode is activated in both the cases. Here are the launch images I have in my project folder –

Default-568h@2x.png
Default-667h@2x.png
Default-736h@3x.png
Default-Landscape-568h@2x.png
Default-Landscape-667h@2x.png
Default-Landscape-736h@3x.png
Default-Landscape.png
Default-Landscape@2x.png
Default-Portrait.png
Default-Portrait@2x.png
Default.png
Default@2x.png

And here is my build.settings file –

settings = { orientation = { default = "portrait", supported = { "portrait", "portraitUpsideDown" } }, iphone = { plist = { CFBundleShortVersionString = "1.0", CFBundleIconFiles = { "Icon-60.png", "Icon-60@2x.png", "Icon-60@3x.png", "Icon-72.png", "Icon-72@2x.png", "Icon-76.png", "Icon-76@2x.png", "Icon-Small-40.png", "Icon-Small-40@2x.png", "Icon-Small-40@3x.png", "Icon-Small-50.png", "Icon-Small-50@2x.png", "Icon-Small.png", "Icon-Small@2x.png", "Icon-Small@3x.png", "Icon.png", "Icon@2x.png" }, UILaunchImages = { { --iPhone 4 Portrait ["UILaunchImageMinimumOSVersion"] = "7.0", ["UILaunchImageName"] = "Default", ["UILaunchImageOrientation"] = "Portrait", ["UILaunchImageSize"] = "{320, 480}" }, { --iPhone 4 LandscapeLeft ["UILaunchImageMinimumOSVersion"] = "7.0", ["UILaunchImageName"] = "Default", ["UILaunchImageOrientation"] = "LandscapeLeft", ["UILaunchImageSize"] = "{320, 480}" }, { --iPhone 4 LandscapeRight ["UILaunchImageMinimumOSVersion"] = "7.0", ["UILaunchImageName"] = "Default", ["UILaunchImageOrientation"] = "LandscapeRight", ["UILaunchImageSize"] = "{320, 480}" }, { --iPhone 5 Portrait ["UILaunchImageMinimumOSVersion"] = "7.0", ["UILaunchImageName"] = "Default-568h", ["UILaunchImageOrientation"] = "Portrait", ["UILaunchImageSize"] = "{320, 568}" }, { --iPhone 5 LandscapeLeft ["UILaunchImageMinimumOSVersion"] = "7.0", ["UILaunchImageName"] = "Default-568h", ["UILaunchImageOrientation"] = "LandscapeLeft", ["UILaunchImageSize"] = "{320, 568}" }, { --iPhone 5 LandscapeRight ["UILaunchImageMinimumOSVersion"] = "7.0", ["UILaunchImageName"] = "Default-568h", ["UILaunchImageOrientation"] = "LandscapeRight", ["UILaunchImageSize"] = "{320, 568}" }, { -- iPad Portrait ["UILaunchImageMinimumOSVersion"] = "7.0", ["UILaunchImageName"] = "Default-Portrait", ["UILaunchImageOrientation"] = "Portrait", ["UILaunchImageSize"] = "{768, 1024}" }, { -- iPad LandscapeLeft ["UILaunchImageMinimumOSVersion"] = "7.0", ["UILaunchImageName"] = "Default-Landscape", ["UILaunchImageOrientation"] = "LandscapeLeft", ["UILaunchImageSize"] = "{768, 1024}" }, { -- iPad LandscapeRight ["UILaunchImageMinimumOSVersion"] = "7.0", ["UILaunchImageName"] = "Default-Landscape", ["UILaunchImageOrientation"] = "LandscapeRight", ["UILaunchImageSize"] = "{768, 1024}" }, { --iPhone 6 Portrait ["UILaunchImageMinimumOSVersion"] = "8.0", ["UILaunchImageName"] = "Default-667h", ["UILaunchImageOrientation"] = "Portrait", ["UILaunchImageSize"] = "{375, 667}" }, { --iPhone 6 LandscapeLeft ["UILaunchImageMinimumOSVersion"] = "8.0", ["UILaunchImageName"] = "Default-667h", ["UILaunchImageOrientation"] = "LandscapeLeft", ["UILaunchImageSize"] = "{375, 667}" }, { --iPhone 6 LandscapeRight ["UILaunchImageMinimumOSVersion"] = "8.0", ["UILaunchImageName"] = "Default-667h", ["UILaunchImageOrientation"] = "LandscapeRight", ["UILaunchImageSize"] = "{375, 667}" }, { --iPhone 6 Plus Portrait ["UILaunchImageMinimumOSVersion"] = "8.0", ["UILaunchImageName"] = "Default-736h", ["UILaunchImageOrientation"] = "Portrait", ["UILaunchImageSize"] = "{414, 736}" }, { --iPhone 6 Plus LandscapeLeft ["UILaunchImageMinimumOSVersion"] = "8.0", ["UILaunchImageName"] = "Default-Landscape-736h", ["UILaunchImageOrientation"] = "LandscapeLeft", ["UILaunchImageSize"] = "{414, 736}" }, { --iPhone 6 Plus LandscapeRight ["UILaunchImageMinimumOSVersion"] = "8.0", ["UILaunchImageName"] = "Default-Landscape-736h", ["UILaunchImageOrientation"] = "LandscapeRight", ["UILaunchImageSize"] = "{414, 736}" }, }, UIStatusBarHidden = true, UIViewControllerBasedStatusBarAppearance = false, UIApplicationExitsOnSuspend = false } }, plugins = { ["CoronaProvider.analytics.flurry"] = { publisherId = "com.coronalabs" } } }

There are 5 landscape images in total that you guys seem to be excluding from your build. Are those launch images really that big (size-wise) that excluding them drastically reduces your binary size? My launch images are roughly 50 KB each. So even if I exclude the landscape versions, I’d be saving 250 KB at the most.

One of these days, somebody will have the time to sit down and figure out the bare essential launch images for every orientation. Until then, just follow the instructions provided in Rob’s blog post to the dot or use the configuration I’ve provided above. You should get your splash screens on iPhone 5 running iOS 8 without any problems.

Hey wow, Prathap Murthy, tested your build.settings file and the big Iphone 5 files suddenly worked in portrait mode  :)  :smiley: Thank you very much for the help. BR

Thanks for your effort PM!

I’ve got Tall mode working now.

I wasn’t that concerned about increasing the file size by including the landscape images, I just didn’t think about trying it since I’m developing a portrait app.

Thanks again!

Nail

The only thing I see that’s different between the build.settings that doesn’t work and the one that does is a space separating the size:

[“UILaunchImageSize”] = “{320, 568}”  – working

vs.

[“UILaunchImageSize”] = “{320,568}”  – not working

Now while any parser worth anything would not care about that white space, it could have been coded to look for ", " when separating the values.  This isn’t a Corona thing.  We are putting that string directly into the Info.plist file.  Apple may not like it without the space.  I don’t have an iPhone 5 with me to test right now, but I would be curious as if this was the cause.

Rob

Can one of you that didn’t have this working try a build with the space between the size values and a build without and see if that’s the issue?  If not, see if it’s the presence of the landscape images as the trigger?  I don’t have access to an iPhone 5 at the moment to try and see.  If we can determine exactly what the trigger is, I’ll get the tutorial and build guide updated to reflect it.  I’m also probably going to update it to go with a new method that some developers have discovered, but it requires using Xcode to produce a file which is a little intimidating for those who never go in there.

Rob

I just made 2 builds one with and one without the space and the missing space IS the issue and the error. A build with no space between the 2 numbers will not show and fill the complete 5 S screen. This is extremely tricky. Who would have thought that this is the reason. Incredible. :o BR Carsten

I’ve seen more bizarre things in all my years of doing this.  But at least we know the cause.

Rob

@520085715353-0001@t-online.de

I share the same results. Tall mode gets deactivated without the space.

@xnailbender

I think it’s better you mark Rob’s answer as the “best answer” so that people can see what the real issue was.

I am having the same problem now. It was ok, a few weeks ago, but the s.screen doesn’t show anymore. It is just a black screen when loading. I am pretty sure my build.settings is correct as i copy/paste it from the docs.

Works on Android.

running on iOS8 and corona Mac simulator 2014.2453

Pls advise.

I notice this error in the Xcode console :

\<Error\>: assertion failed: 12A405: libxpc.dylib + 51955 [84E1BEE3-B897-39DD-9A7B-D061B6B252C5]: 0x7d

My build.settings file :

settings = { plugins = { ["plugin.openssl"] = { publisherId = "com.coronalabs", }, -- Admob v2 ( file:///D:/Bricatta/CoronaApiDocs-2014.2302/plugin/ads-admob-v2/index.html ) ["plugin.google.play.services"] = { publisherId = "com.coronalabs" }, }, build = { -- neverStripDebugInfo = false }, excludeFiles = { -- Exclude all files at paths which end with "secret.txt": -- all = { "\*secret.txt" }, -- Exclude all Android icon files and .ogg files in the "music" directory: -- iphone = { "Icon-\*dpi.png", "music/\*.ogg" }, -- Exclude iOS "retina" image files and .m4a files in the "music" directory: android = { "asset/\*/\*@4x.png", "asset/\*/\*@4x.jpg", } -- "AppIcon\*", "iTunesArtwork\*", } }, android = { permissions = { { name = ".permission.C2D\_MESSAGE", protectionLevel = "signature" }, }, usesPermissions = { "android.permission.READ\_PHONE\_STATE", "android.permission.VIBRATE", "android.permission.INTERNET", "android.permission.ACCESS\_NETWORK\_STATE", "android.permission.GET\_ACCOUNTS", -- For GCM push-notification "android.permission.RECEIVE\_BOOT\_COMPLETED", -- For GCM push-notification "com.google.android.c2dm.permission.RECEIVE", -- For GCM push-notification ".permission.C2D\_MESSAGE", -- For GCM push-notification --"android.permission.ACCESS\_FINE\_LOCATION", --"android.permission.ACCESS\_COARSE\_LOCATION", --"android.permission.CAMERA", -- Used in full version, to upload photo --"android.permission.WRITE\_EXTERNAL\_STORAGE", -- Used in full version, to upload photo }, usesFeatures = { -- If you set permissions "ACCESS\_FINE\_LOCATION" and "ACCESS\_COARSE\_LOCATION" above, -- then you may want to set up your app to not require location services as follows. -- Otherwise, devices that do not have location sevices (such as a GPS) will be unable -- to purchase this app in the app store. --{ name = "android.hardware.location", required = false }, --{ name = "android.hardware.location.gps", required = false }, --{ name = "android.hardware.location.network", required = false }, }, }, orientation = { default = "portrait", supported = { "portrait", "portraitUpsideDown", "landscapeRight", "landscapeLeft", }, }, iphone = { plist = { -- MinimumOSVersion = "7.0", UIStatusBarHidden = false, CFBundleIconFiles = { "AppIcon76x76@2x.png", "AppIcon76x76.png", "AppIcon72x72@2x.png", "AppIcon72x72.png", "AppIcon60x60@3x.png", "AppIcon60x60@2x.png", "AppIcon60x60.png", "AppIcon57x57@2x.png", "AppIcon57x57.png", "AppIcon50x50@2x.png", "AppIcon50x50.png", "AppIcon40x40@3x.png", "AppIcon40x40@2x.png", "AppIcon40x40.png", "AppIcon29x29@3x.png", "AppIcon29x29@2x.png", "AppIcon29x29.png", }, UILaunchImages = { { -- iPhone 4 Portrait ["UILaunchImageMinimumOSVersion"] = "7.0", ["UILaunchImageName"] = "Default", ["UILaunchImageOrientation"] = "Portrait", ["UILaunchImageSize"] = "{320,480}" }, { -- iPhone 4 LandscapeLeft ["UILaunchImageMinimumOSVersion"] = "7.0", ["UILaunchImageName"] = "Default", ["UILaunchImageOrientation"] = "LandscapeLeft", ["UILaunchImageSize"] = "{320,480}" }, { -- iPhone 4 LandscapeRight ["UILaunchImageMinimumOSVersion"] = "7.0", ["UILaunchImageName"] = "Default", ["UILaunchImageOrientation"] = "LandscapeRight", ["UILaunchImageSize"] = "{320,480}" }, { -- iPhone 5 Portrait ["UILaunchImageMinimumOSVersion"] = "7.0", ["UILaunchImageName"] = "Default-568h", ["UILaunchImageOrientation"] = "Portrait", ["UILaunchImageSize"] = "{320,568}" }, { -- iPhone 5 LandscapeLeft ["UILaunchImageMinimumOSVersion"] = "7.0", ["UILaunchImageName"] = "Default-568h", ["UILaunchImageOrientation"] = "LandscapeLeft", ["UILaunchImageSize"] = "{320,568}" }, { -- iPhone 5 LandscapeRight ["UILaunchImageMinimumOSVersion"] = "7.0", ["UILaunchImageName"] = "Default-568h", ["UILaunchImageOrientation"] = "LandscapeRight", ["UILaunchImageSize"] = "{320,568}" }, { -- iPad Portrait ["UILaunchImageMinimumOSVersion"] = "7.0", ["UILaunchImageName"] = "Default-Portrait", ["UILaunchImageOrientation"] = "Portrait", ["UILaunchImageSize"] = "{768,1024}" }, { -- iPad LandscapeLeft ["UILaunchImageMinimumOSVersion"] = "7.0", ["UILaunchImageName"] = "Default-Landscape", ["UILaunchImageOrientation"] = "LandscapeLeft", ["UILaunchImageSize"] = "{768,1024}" }, { -- iPad LandscapeRight ["UILaunchImageMinimumOSVersion"] = "7.0", ["UILaunchImageName"] = "Default-Landscape", ["UILaunchImageOrientation"] = "LandscapeRight", ["UILaunchImageSize"] = "{768,1024}" }, { -- iPhone 6 Portrait ["UILaunchImageMinimumOSVersion"] = "8.0", ["UILaunchImageName"] = "Default-667h", ["UILaunchImageOrientation"] = "Portrait", ["UILaunchImageSize"] = "{375,667}" }, { -- iPhone 6 LandscapeLeft ["UILaunchImageMinimumOSVersion"] = "8.0", ["UILaunchImageName"] = "Default-667h", ["UILaunchImageOrientation"] = "LandscapeLeft", ["UILaunchImageSize"] = "{375,667}" }, { -- iPhone 6 LandscapeRight ["UILaunchImageMinimumOSVersion"] = "8.0", ["UILaunchImageName"] = "Default-667h", ["UILaunchImageOrientation"] = "LandscapeRight", ["UILaunchImageSize"] = "{375,667}" }, { -- iPhone 6 Plus Portrait ["UILaunchImageMinimumOSVersion"] = "8.0", ["UILaunchImageName"] = "Default-736h", ["UILaunchImageOrientation"] = "Portrait", ["UILaunchImageSize"] = "{414,736}" }, { -- iPhone 6 Plus LandscapeLeft ["UILaunchImageMinimumOSVersion"] = "8.0", ["UILaunchImageName"] = "Default-Landscape-736h", ["UILaunchImageOrientation"] = "LandscapeLeft", ["UILaunchImageSize"] = "{414,736}" }, { -- iPhone 6 Plus LandscapeRight ["UILaunchImageMinimumOSVersion"] = "8.0", ["UILaunchImageName"] = "Default-Landscape-736h", ["UILaunchImageOrientation"] = "LandscapeRight", ["UILaunchImageSize"] = "{414,736}" }, }, }, }, }

Please try it with the spaces everywhere between the width, height values i.e. [“UILaunchImageSize”] = “{320, 568}” instead of  [“UILaunchImageSize”] = “{320,568}”

OMG!

These old eyes would NEVER have picked up on that REQUIRED extra space, I can barely pickup typos.

I’ve removed my Landscape images and commented out the Landscape tables in the UILaunchImages array and Tall Mode LOADS properly on iPhone 5 as one would expect.

Thanks for looking at this again Rob and PM for the help.

Nail

Adding the space between the numbers worked! Thanks. Wonder why it worked previously and not in the new simulator.

Guess the daily build needs to be updated.

We didn’t start suggesting using this until the iPhone 6 family came out, so I’m not sure what you mean that it worked previously.