Launch Storyboard not showing image when project builds to device.

I setup a Launch Screen Storyboard which has a logo for my app in .pdf vector. When I build the project image is not visible on device. Simulator works just fine. Tried on a few diffrent devices and the issue persists. Cleaned the whole project, deleted derived data, still an issue.


Image is getting pulled from Asset catalogue. Any ideas?

Post not yet marked as solved Up vote post of designmax Down vote post of designmax
87k views

Replies

I've been fighting this exact issue for a couple of days and taking the images used by my launch storyboard out of the asset catalog and making them simple files fixed the issue. It appears that asset catalogs are not reliably loaded in time to be used by launch storyboards.

I'm working with iOS 9. I crafted a Launch storyboard file and it worked. Then I changed some other stuff, and it stopped working. My app would start with a black screen. After much reverting with GIT and searching the internet, I discovered my problem:


One of the things I had done was rename an image used in the launch storyboard. "Gradient.png" became "Splash Gradient.png". I took the space out and it worked again!


It seems that if your launch storyboard has a UIImageView with an image whose filename contains a space, the entire storyboard won't launch. Same is true for a launch XIB (which I tried).

@jeffb6688 custom fonts and the asset catalogue are not loaded into memory by iOS in time for the app to display these in the launch screen storyboard.


This is why iOS prepares cached snapshots of the launch screen. The cached snapshots are used at launch, not the supporting assets.


The workaround for images is as I described in my answer (in response to question by OP).


The workaround for custom fonts is more complicated.


Regardless of where they are placed in the file system, custom fonts are not loaded into memory by iOS in time for the app to display these in a launch screen storyboard.


So the workaround... we must prepare static image files that contain the custom font as a part of (embedded into) that image, in a size and layout to suit each screen orientation, size and resolution.


It won't take long to realise that this can become a significantly time consuming exercise given the great number of possibilities for screen orientation, size and resolution.


We could complain about this but Apple makes it clear in their iOS Human Interface Guidelines that launch screen images are not intended to be traditional "splash screens".


In their words...


  • Design a launch screen that’s nearly identical to the first screen of your app.
  • Avoid including text on your launch screen.
  • Downplay launch.


Yes, Apple still approves apps with traditional splash screens, however this is contrary to their iOS HIG.

Restarting iPhone solved my problem too😎. Plus re-installing the app.

Xcode 8.3.2

Has still similar problems.

I changed existing image with new one on launch screen (by drag drop 3 images 1x 2x 3x recpectfully)

First, previous image shown long time. To get rid of it I deleted UIImage on launch screen re created a new one. Link with the name image; result : no image at all. This is not about alpha channel , I tested.

To resolve after many try, only thing which worked for me;

Creating; New image name (I mean newlogo.png) and new asset in Xcode with different name.

Then using it made work. I could see the new correct image.

Yup, dropping the asset catalog and putting the PNG file in the project tree did it

Additionally, I had to rename it (as I was trying to update an old version of it), or the old one would still show up until the device was restarted and the app reinstalled.

I know this post is old, but maybe this will help...


I had the same problem, but found out that it depended on where I put the image. The "Main" and "Launch" Storyboards were looking for an image in one Assets folder, while the app was looking for images in another.


I put the images into the correct folder, and the problem was instantly solved!

The answer was re-booting.

****, my hours..

I had the similar issue since using Xcode12.beta with Xamarin and for simulator and device (iOS13 and iOS14 devices)
My LaunchScreen has a background & text label plus a centered png image; was all working until changing to xcode12.beta.

Tried all solutions like renaming / creating new assets or using png bundle resource only... always just showing full black screen when launching. Also tried all reboot / uninstall / clean solution multiple times.
When editing the storyboard file to an invalid image name, the launchscreen will show (colored background & text), just without the image. When using the correct image (as also showing correctly in Xcode storyboard editor), the launchscreen only shows full black screen.

After changing back the underlying Xcode version in VisualStudio/Xamarin to Xcode11, the launchscreen immediately showed correctly again as before!

Has been facing the same issue on Xcode 12.2 beta. Lost lot of hours.
Just reboot your iPhone.
This thread is 7 YEARS OLD and I hit the same problem as all of you after upgrading my project compat to Xcode 12+
I tried:
  • Clean and Rebuild .... then spend hours googling what other people did in my situation, or what was the proper way to set up a splashscreen storyboard with a single PNG in the middle of it.

  • Move PNG to Images.xcassets (and Rebuild ... reboot phone and rebuild... delete from phone, reboot, rebuild)

  • Move Splash.storyboard to the main source folder (and Rebuild ... delete from phone, reboot phone and rebuild)

  • Move PNG back to root of project, remove, re-add, rebuild... delete from phone, reboot, and rebuild...

  • BE SURE TO SAVE .xcassets, .xcodeproj, and .xcworkspace between edits and all the above dark incantations, round 2.

  • Uninstall and re-install Xcode

  • Sacrifice a goat to each of a 1x, 2x, and 3x life-scale effigy of Steve Jobs

Ultimately what worked was creating a new Xcode project and meticulously copying all the salient files and settings from the old project.



And the sad thing is, I know I've had this exact problem with this exact same app I maintain several other times over the last 3 years. Never with any logical cause, never with the same solution (or certainty as to *which* solution actually did the trick.)

I don't know if there is a subtle hint from the IDE ux I am missing (maybe because I am colorblind?) or if there is a recurring bug in Xcode over the years regarding cache coherency between the IDE and the actual files on disk, or if it is a Bertrand Russel paradox of actual folders vs. Xcode make-believe folders with Xcode file references and unix file aliases attempting to resolve the image set of all image sets which do not contain themselves... yet somehow do contain my image assets....


BUT PLEASE Apple, if you must FORCE us to use your IDE, can't you at least test it??? And no, I can't reproduce the issue for you in a test project -- the fundamental issues with Xcode usage are issues fundamentally because they appear non-deterministic from the perspective of a user.

More constructively: re-visit the entire project file editing paradigm with a special attention to finitely enumerating (and minimizing!) all possible state transitions and verifying their functionality in your unit tests. Use a strategy that produces convergently consistent results. Reduce the number of places where the "location" of an asset is copied around the project files -- ideally to one. Or zero, if you just use convention over configuration, and actively re-query the folders every time. Consider removing the abstractions and endless redundant manifest files in the project system, and embrace an approach that is 1:1 with the file system - and don't force me to use A SEPARATE IDE to debug the stale references in the horribly verbose plist-formatted *.apple-fu-wizardy-foobar files.

I'm certainly not a perfect dev, I make all those same kinds of mistakes in systems I build - that's how I know for certain, with no actual proof, that these project-system over-complications are to blame for Xcode's legacy of ridiculous un-provable instability. -- but! I'm not a multi-billion dollar corporation with the resources to get stuff correct the first time... or the second time... OR SEVEN YEARS LATER.
  • I will add that this is 7yrs old and have also encountered this. Not only on one app but on a second app as well. I've tried removing the image and setting the background to a color and that works. However, specifying an image in the storyboard the image does not show up? Attempting renaming the image and still does not show up. Very Very odd. How is this still an issue 7 yrs later? I have other apps that the LaunchScreen.storyboard works just fine???

Add a Comment

I will add that this is 7yrs old and have also encountered this. Not only on one app but on a second app as well. I've tried removing the image and setting the background to a color and that works. However, specifying an image in the storyboard the image does not show up? Attempting renaming the image and still does not show up. Very Very odd. How is this still an issue 7 yrs later? I have other apps that the LaunchScreen.storyboard works just fine???

Yup....same issue.....splash screen does not work. It was working if I changed the size....but that is no longer working either. So frustrating. I have no clue how to get a splash screen to work for IOS

I fixed the launchscreen, "not-updating/registering ui changes", xcode bug by doing the following steps in order:

-delete app from device and simulator. -clean xcode: shit-command-k. -quit xcode and simulator. -turn off macbook, turn on. -turn off iphone, turn on. -reopen xcode. -add ui button to launchscreen or any other UI element so that buggy xcode register changes. -build & run project.

Some problem here. We are releasing a new version of our app, and we have to update the launch screen as well. After restarting my phone I was able to develop & test it, but when we release it to Test Flight our QA team has the same issues with non visible images. After they restart their phones the issue goes away and the images are visible. Now this makes me think if we release it to the App Store whether our users have to restart their phones as well? IMHO this unacceptable.