Launch image on IOS not working?


Ok, so this is a bit odd but one of my apps will not longer work with the launch image module. It has been the same for years, then today I went to run a build and I see the ‘Forge’ splash screen. I know IOS likes to hold on to it so I powered down the device, deleted the app and tried again, same thing.

I understand this is very vague, so my settings are the latest of everything. Verified the images are the right size and no transparency etc.


I have run a few tests with this now and it appears that 2.7.7 and 2.7.8 both break the launch-image module.

In my testing when using those versions the launch-image will not display on IOS, instead we get the forge splash screen.

With 2.7.6 the for launch-image works.


Independently tested and confirmed.

Reverting back a few revs; maybe it’ll fix my issues, too.


Tx for the report, diagnosis and verification! :heart:

When the splash screen won’t go away it’s usually one of two reasons:

  1. Most common: Something in your code is throwing an exception before it can get to the point where forge.launchimage.hide(); is being called. Usually best debugged with a global exception handler and so you can catch everything during the startup phase. (remember to use catalyst with forge.enableDebug();)
  2. Less common: Something in our code is crashing out during the app startup phase. Best debugged by a) disabling all modules except launchimage, b) make sure your code is calling forge.launchimage.hide(); if needed and c) enabling modules one-by-one until the launchimage refuses to hide.

That said, the wrong splash screen is definitely my fault :blush:

Since v2.7.7 we’ve been shipping a bug for iOS modules that causes local build steps to not execute.

I’ve pushed a fix to v2.7.8:


I can also speak from experience working on native iOS stuff of late, iOS is ridiculously, stupidly, major-aggressively passionate about caching startup images, and if you change them between versions, there’s a 65% chance you’ll just plain never see your new one, or you’ll see the old one for a moment before the new one is displayed. Even with a reboot. Full app removal, reboot, then reinstall the new version finally does the trick. there’s also a load-time trick you can pull where you manually load the image in code from the didLoadWithOptions function. It’s all a bit silly.