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

I can’t get the documented UILaunchImages table to work in build.settings.

My Default-568h@2x.png and app load fine if I don’t use the UILaunchImages table.

If I use the table, my app doesn’t load tall and no loading screen.

Build: 214.2448 with Xcode 6.0.1

I’ve got all the needed Default images, 4, 5 , ipad, 6 & +.  Portrait, so no Landscape images or table entries.

Ideas?

Is anyone else having trouble?

Nail

I’m having the same problem so I’ll stick around. In my iPhone plist in build settings I have: 

 UILaunchImages = { { -- iPhone 5 Portrait ["UILaunchImageMinimumOSVersion"] = "7.0", ["UILaunchImageName"] = "Default-568h", ["UILaunchImageOrientation"] = "Portrait", ["UILaunchImageSize"] = "{320,568}" }, { -- iPhone 6 Portrait ["UILaunchImageMinimumOSVersion"] = "8.0", ["UILaunchImageName"] = "Default-667h", ["UILaunchImageOrientation"] = "Portrait", ["UILaunchImageSize"] = "{375,667}" }, { -- iPhone 6 Plus Portrait ["UILaunchImageMinimumOSVersion"] = "8.0", ["UILaunchImageName"] = "Default-736h", ["UILaunchImageOrientation"] = "Portrait", ["UILaunchImageSize"] = "{414,736}" }, }, --required

Just to activate tall mode on those devices, but when building the app and testing on my iPhone 5s it’s not working. 

In the app folder (on root of course) I have “Default-568h@2x” (640x1136), “Default-667h@2x” (750x1334) and “Default-736h@3x” (1242x2208) (all PNG files). 

I’ve tried other things, but without any code in the build settings with my other app, just the Default-568h@2x pic will activate the tall mode. Unsure if I should just remove the code from build.settings orrrr…?


Also, does iPhone 6/6+ need to have tall mode activated too? 

(I use storyboard to launch a splash screen so it’s not that important for the launch image to load for me.)

Thanks for any help offered.

bump…

Rob, just read the latest blog post on the new iPhones.

UILaunchImages array doesn’t work with iOS8 and iphone 5.

Ideas?

Nail

I am really confused too.

If I don’t use launch images, I just want to enable iPhone5 tall screen, how do I do exactly?

I’m using a Default-568h@2x.png and old build.setting WITHOUT UILaunchImages table.

But I’m not sure if it’s correct.

(Does iPhone6 and iPhone6+ need tall mode?)

Bump again, again…

Only having a 5, I don’t know what’s up, besides what I read.

No one, from what I can tell can get 5 to load in tall mode using the UILaunchImages, regardless of the Corona blog stating is should work.

I’m not sure if 6 and 6+ require a tall mode launch image, but by the looks of the array, it seems they do.

Rob, Corona, anyone???

Ideas?

Success???

Nail

Can you post your build.settings?

Are you sure you have the files the right size?  The presence of Default-568h@2x.png should be sufficient to trigger tall mode on the iPhone 5.  But the code has been tested on an iPhone 5 too, so it should be working.

Rob

Same problem here. IOS 8 + iphone 5s. At least the tip with the empty build settings allowed me to view the whole tall screen for the first time.

Please post your build.settings

Here’s what I’ve got for build.settings

[lua]

settings =
{
    {
        neverStripDebugInfo = true
    },
    
    iphone =
    {
        plist=
        {
            UIInterfaceOrientation = “UIInterfaceOrientationPortait”,
            
            NSLocationWhenInUseUsageDescription = “Location Services are used to navigate.”,
            
            UISupportedInterfaceOrientations =
            { default = “portrait”,
        supported = { “portrait” },
            },
            
            – MinimumOSVersion = “5.0”,
            MinimumOSVersion = “6.0”,  --neither Min value works
            
            UIApplicationExitsOnSuspend = false,
            CFBundleURLTypes =
            {
                {
                    CFBundleURLSchemes =
                    {
                        “com-something-somegame”
                    },
                },
            },
            
            CFBundleDisplayName = “someGame”,
            UIPrerenderedIcon = true,
            UIStatusBarHidden = true,
            
            CFBundleIconFile = “Icon.png”,
            CFBundleIconFiles = {
                “Icon.png”,
                “Icon@2x.png”,
                “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”,     
            },
            
            --launch image files table
            UILaunchImages = {
                {  – iPhone 4 Portrait
                    [“UILaunchImageMinimumOSVersion”] = “7.0”,
                    [“UILaunchImageName”] = “Default”,
                    [“UILaunchImageOrientation”] = “Portrait”,
                    [“UILaunchImageSize”] = “{320,480}”
                },
                
                
                
                {  – iPhone 5 Portrait
                    [“UILaunchImageMinimumOSVersion”] = “7.0”,
                    [“UILaunchImageName”] = “Default-568h”,
                    [“UILaunchImageOrientation”] = “Portrait”,
                    [“UILaunchImageSize”] = “{320,568}”
                },
                
                {  – iPad Portrait
                    [“UILaunchImageMinimumOSVersion”] = “7.0”,
                    [“UILaunchImageName”] = “Default-Portrait”,
                    [“UILaunchImageOrientation”] = “Portrait”,
                    [“UILaunchImageSize”] = “{768,1024}”
                },
                
                
                {  – iPhone 6 Portrait
                    [“UILaunchImageMinimumOSVersion”] = “8.0”,
                    [“UILaunchImageName”] = “Default-667h”,
                    [“UILaunchImageOrientation”] = “Portrait”,
                    [“UILaunchImageSize”] = “{375,667}”
                },
                
                {  – iPhone 6 Plus Portrait
                    [“UILaunchImageMinimumOSVersion”] = “8.0”,
                    [“UILaunchImageName”] = “Default-736h”,
                    [“UILaunchImageOrientation”] = “Portrait”,
                    [“UILaunchImageSize”] = “{414,736}”
                },
            },       
        },   
    },
    components = {},
    
    orientation =
    { default = “portrait”,
        supported = { “portrait”, “portraitUpsideDown” },
    },
    
    
    plugins =
    {
        – key is the name passed to Lua’s ‘require()’
        [“CoronaProvider.native.popup.addressbook”] =
        {
            – required
            publisherId = “com.coronalabs”,
        },
        
        [“CoronaProvider.analytics.flurry”] =
        {
            publisherId = “com.coronalabs”,
            supportedPlatforms = { iphone = true, [“iphone-sim”] = true },
        },
        
    },
    
    android =   --these permissions allow phone access
    {
        usesPermissions =
        {
            “android.permission.INTERNET”,
            “android.permission.CALL_PHONE”,
            “android.permission.CALL_PRIVILEGED”,
            “android.permission.PROCESS_OUTGOING_CALLS”,
            “android.permission.READ_PHONE_STATE”,
            “android.permission.WRITE_EXTERNAL_STORAGE”,
            “android.permission.ACCESS_FINE_LOCATION”,
            “android.permission.ACCESS_COURSE_LOCATION”,
        },
        usesFeatures =
        {
            { name=“android.hardware.camera”, required=false },
            { name=“android.hardware.location”, required=true },
            { name=“android.hardware.location.gps”, required=true },
        }
    },
    
}

settings.iphone.plist[“UIInterfaceOrientation~ipad”] = “UIInterfaceOrientationPortrait”
settings.iphone.plist[“UISupportedInterfaceOrientations~ipad”] =
{ “UIInterfaceOrientationPortrait”,“UIInterfaceOrientationPortraitUpsideDown” }
 

[/lua]

The top of your build.settings does not appear to be correct:

build =
{
    neverStripDebugInfo = true
}

You don’t seem to have the "build = " in there.

I’m also not familiar with what you’re doing on lines 148 and 149.  I don’t know if either of these would cause the problem.  You can also try leaving off the -568 from the file name and see if that has any effect.

Rob

Rob, thanks for taking a look at my build.settings.

I fixed the missing "build = " at the top, commented out line 148 & 149 and played with changing the -568 suffix, unfortunately the iPhone 5 won’t load tall.

I know you stated the UILaunchImages has been tested and works with iPhone 5, but I have yet to see anyone state they have it working.  I only see responses that it doesn’t.

I believe all my images are sized and named correctly.

Can you test it, or have someone else with an iPhone 5 verify this actually works?

If anyone has this working on device, please let us know.

Thanks,

Nail

My app supports only landscape orientations. I tested Rob’s guidelines from his blog post 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. So I can confirm that it works, at least on iPhone 5 devices on both iOS 7 & 8. Haven’t tested it yet on iPhone 6 devices. 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 = "landscapeRight", supported = { "landscapeLeft", "landscapeRight" } }, 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" } } }

Since it’s a landscape-only app, I could probably delete some unnecessary launch images and tweak the build.settings file accordingly. I’ll try that when I get the time and report the results.

Thanks PM for that.

My problem is my app is “Portrait” and won’t load tall on 5.

I don’t have any “Landscape” images either loaded or specified in my UILaunchImages array though, maybe they all need to be included.

I’ll try to add “Landscape” images and include the full table, including Landscape tomorrow and see if it works.

If you can get “Portrait” to load tall, let us know.

Nail

Same problem here: only “Portrait” files in the app and they won’t load tall on 5S / IOS 8 unless i insert a complete empty build.settings file. Please help corona !

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