Launch Screen storyboard not displaying image

IosIphoneXcode

Ios Problem Overview


I'm trying to get an image to display as the launch screen from my Launch Screen.storyboard file, however the image never displays. I have labels that show up fine, but the image doesn't appear.

This is how the launch screen looks in the Launch Screen.storyboard file: enter image description here

However when I run the app on the simulator (as well as on the physical device) this is what shows up:

enter image description here

As you can see, the label "Test" shows up fine, however the image does not display. I'm really not sure why this is happening and nothing I try seems to work. If anyone has any ideas of how to fix this it would be greatly appreciated.

Ios Solutions


Solution 1 - Ios

After restarting Xcode, cleaning the build and a number of the other suggestions on SO about this problem. What actually fixed it for me was a hard reboot of the device. (I wasted over an hour on this)

I suppose it just goes to show that the old saying have you turned it off and on again is still true for the latest gadgets!

How to reboot iPhone XS or iPhone XS Max

  1. Quickly press and release the Volume Up button

  2. Quickly press and release the Volume Down button

  3. Press and hold the Side Button until the Apple logo appears

Solution 2 - Ios

I was messing around with this for hours too. But i found the solution now. You need to add the image to your project and also to the assets.xcassets via drag and drop.

Solution 3 - Ios

Had the same issue, adding the image to the "Build Phases -> Copy Bundle Resources" fixed it for me.

Solution 4 - Ios

Follow below steps,

  1. Remove application from the device
  2. Restart device
  3. Build again

If not working, delete derived data. Xcode Preference->Locationtab->Derived data. Then do follow above steps.

Solution 5 - Ios

It happened to me and makes me crazy, beyond get me lose some minutes 'til I figure it out.

So, like was said before:

  1. Import the desired image to your Xcode project (just drag and drop it)
  2. Change its Constraints and Alignment
  3. Update frames resolving Auto Layout issues
  4. In the Attributes inspector tab menu (generally in right corner menu xCode), on Image view > Image, remove image extension (.png or .jpg) - that's the trick

On the design screen, it will not appear, but when you run your app, it will be shown.

I hope it can help!

Solution 6 - Ios

Very frustrating. Solution that finally worked:

  1. Do hard reboot of device

  2. Delete app

  3. Install app from Xcode

Solution 7 - Ios

At last, restart the phone works for me!!

I have spent hours on this issue. Had tried change the images name, delete the whole image assets, modify info.plist, restart Xcode and even tried to set all the attributes of the images(which you can tell how desperate I was).

Solution 8 - Ios

After invested a lot of time, I got the solution:-

Step 1:- Quit Xcode
Step 2:- Delete the app from device/simulator
Step 3:- Restart your device (if you are using simulator then you have to quit simulator)
Step 4:- Clear all derived data 
Step 5:- Clear Bin
Step 6:- Open Xcode and relaunch the app, it will work 

Solution 9 - Ios

I faced the same problem.

  1. Add an new imageset to XcodeAssets.
  2. Add images to to the imageset.
  3. Add image view to launch screen and set your imageset as image
  4. On Imageview's attributes inspector, uncheck 'clears graphics context'
  5. Clean the build folder and run again.

enter image description here

Solution 10 - Ios

This issue is related to the Assets.xcassets to fix it you must add the image as resource but not in the xcassets folder and then should work just fine

Solution 11 - Ios

In my case, resetting content and settings for simulator fixed the problem.

Solution 12 - Ios

After trying everything on several StackOverflow threads, here's what worked for me:

  • Use a .png
  • Do not include it in your Assets catalog. Add it to your project's hierarchy directly, as you would add any source file.
  • In the image view, load the image including its extension. Example: launch_app_image.png

(Might have to clean product or derived data to update, but I didn't have to)

Solution 13 - Ios

It seems there is some problem with resource caching in xCode. Had the same problem, restarted xCode and everything works fine after that.

Solution 14 - Ios

Restart your device and clear x-code derived data

Solution 15 - Ios

Well As of now there is retina device available and I ignored @1x image in Assets.xcassets.

In my case, I have app logo in Splash screen which is not visible when I run the application.

After wasting so much time I figured out that I only provided @2x and @3x images for that logo image.

> This issue is resolved by adding @1x version of that image.

Solution 16 - Ios

I had that problem after adding image to project and shotdown the device the problem solved

Solution 17 - Ios

Was changing the background image of the splash screen and the new image wasn't showing (react native project).

Following the answers from others.

I did all the below and it was fixed:

  • Clean build.
  • Remove app from simulator
  • Quit simulator
  • Restart XCode
  • Run app again

Solution 18 - Ios

In my particular case, the splash screen worked for the simulator and other devices, but stopped working for one specific device. This lead me to believe that it was some caching data kept by xcode (v10 and iPhone 7 v12.1).

I deleted the derived data at: ~/Library/Developer/Xcode/DerivedData/ only emptying the folder contents, not deleting the folder. I then rebooted the mac and the iPhone and cleaned and rebuilt the project, and now it is showing up.

I'm not sure if all of this was necessary, but didn't want to waste any more time narrowing it down, so the above sledgehammer approach worked for me. But of course it always depends on your specific situation - mine was device specific; for others it could be the actual image or launch screen layout etc.

Solution 19 - Ios

Actually, for some heavyweight images, it isn't a good situation to add them into images.xcassets, because the app loads images.xcassets lightweight images before launch. So I put splash screen images at the first root of load and then the issue has gone:

  1. Create a new Group in the root of the project
  2. Drag and drop your image inside of the yellow group folder
  3. Rename it to a different special name
  4. Back to your xib (or storyboard) file and address the ImageView to the special name that it is in step 3.
  5. Clean and build again, then you can see your image.

Hint: You can create your ImageSet in the images.xcassets but place them in the root of the project.

Solution 20 - Ios

You have to make sure that the file name of your image has a format like .png or .jpg at the end otherwise it will not work. Also, before adding your image, you have to make sure that the image file is in your "Assets.xcassets" folder within your project. This can be done with a simple drag and drop. Also, make sure when you've added your image to your storyboard that the image name in the top left also matches the real image file name. I would try looking into Constraints too. Hope this helps. Good luck with your App.

Solution 21 - Ios

I tried so many things with this (this thread alone seems to have a million ideas and half of them are conflicting). The problem for me was that when I did things like restarting the device and Xcode, it would cause the image to show for a few sessions of the app, and then it would stop (I have no idea why, but WOW it was annoying).

After countless hours, I found that A.G.'s answer in this thread is the correct one. The one thing I was doing wrong was that I was creating a new image set within xcassets, but I was then still using the name of the image within the UIImageView inside of the storyboard instead of using the name of the image set.

To clarify, what you would do is create a new image set and name it something like "Launch-Defaults", and then add your images to it. Then, within the UIImageView inside of the storyboard, you use the image "Launch-Default" (not including an extension since there is none since this is an image set).

When you do all of that, the image should actually appear correctly inside of your storyboard. Some people say the image will display blank if you don't use the extension (.jpg or .png), but I assume that is because they are not using the name of the image set. Others say you need to use an extension like .png or .jpg, but the key is to create the image set inside of xcassets and then use that image set inside of the storyboard. When done correctly, there should be no funkiness like an image not showing up or the Launch Screen only working some of the time (requiring a reboot).

Solution 22 - Ios

Just to add my $0.02 to this question; I got this solved by using PNG images instead of JPG/JPEG images.

After converting the images to PNG and crunching them to reduce the size a little, everything worked fine.

Solution 23 - Ios

My issue.

Reason: I have renamed the images after dragging into Xcode. Solution: Don't rename images after dragging into Xcode. It creates problems for understanding Xcode. Rename images before dragging/adding into Xcode.

Hope it helps you out!

Solution 24 - Ios

I spent hours on this problem before finally realizing my mistake. When you add an image to a UIImageView, it will use just the name of the image. If your images are in a different folder than your storyboard, they will show up in xcode but not when running the app. You must add the appropriate file path prefix, for example, images/image.png. It will now appear as a blue question mark in xcode, but it will work in the app.

Solution 25 - Ios

I faced the same issue. Tried different solutions for that but nothing proved to be helpful. I then realised that the image was not visible only when i directly installed the app into device and the app is still connected to the xcode. If i disconnect it and then open the app the image was visible as expected. It might be a xcode bug.

Solution 26 - Ios

I tried cleaning the project, removing the png, removing the constraints did not work for me.

I just made one more copy of the image and renamed the copy then deleted the old image and added the new image (Same, with name changed) i just gave that image and it worked for me.

Also i am not using the Assets.xcassets, using the image in a folder.

Solution 27 - Ios

My first mistake was, that I created a normal .storyboard, renamed it and defined it as launchscreen in the project settings. I this case I had image problems. It seems that some settings are missing in this case then, so I just created a new file via file->new and picked directly the "Launch Screen" and then it worked.

Also I had in mind that, that layout constraints are not supported in the launchscreen for some reason. Maybe it was like that in the beginning, not sure, but now constraints should work.

Maybe this helps anyone.

Solution 28 - Ios

In my case, it was a bit more than just rebooting the device. My launch image was stored in other Assets (Other Pods).

Had to move the image to App project's Assets. And then rebooted my device. (Check simulator first, it should work). Then it worked.

Images can be in format png/pdf, single scale or not doesn't matter.

Solution 29 - Ios

I just figured this out. My launch image was not showing up, I get a white screen when launching on a device (iPhone 6, 7+) or testFlight. Fix: Renamed "Landing_screen.png" to just "Landing_screen" removing .png part. The image icon in Xcode changed to white icon and in the launch screen storyboard the image appears as a question mark now. The Launch image now appears and not the white screen. My Setup: I am using Swift 3.1 with Xcode 8.3.1. In LaunchScreen.storyboard I added a simple image view and stretched the image to fit the view controller. I set auto layout constraints Top/Bottom/Leading/Trailing space to superview to 0 - see image below:

enter image description here

Solution 30 - Ios

In my case, it turned out I had some views still linked to the view controller that was now just a basic view controller. If I control-click on the view I can see the outlets with warnings, however, the warnings did not appear in Xcode which is why I was having trouble finding them.

Solution 31 - Ios

I have face this same issue when using launch-storyboard for showing splash screen and after research i have found that the image what i have set in launch-storyboard is of different size and i have set image-view bigger than actual size of image.

So the solution i have found is either set image-view content size as aspect fit or set image-view size as image size.

Like if your image @1x size is 200X200 than image view should be of 200X200 than you will solve this issue.

As because if you set image-view size bigger than image then image will starched and this is not allowed.

If you still have any doubt please comment here and ask

Solution 32 - Ios

I had launch screen file named but it didn't exist. When I removed this my launch image appeared.

Solution 33 - Ios

In my case I could fix it by just unchecking "clears graphics context" from attribute inspector for all of the image views used in the Launchscreen storyboard.

For your information i had imported images in Assets.xcassets in png formats.

Solution 34 - Ios

In my case I had to select two checkmarks:

  • Use as Launch Screen
  • Is Initial View Controller

Use as Launch Screen

enter image description here

Solution 35 - Ios

Importing images as regular files worked for me. Don't add image from assets catalog!

enter image description here

enter image description here

Solution 36 - Ios

This happens to be a caching issue in XCode/iOS, but there's a simple fix to this: Just rename the file inside Assets.xcassets, so the cache gets regenerated.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionshadowarcherView Question on Stackoverflow
Solution 1 - IosFlexicoderView Answer on Stackoverflow
Solution 2 - IosTristan GView Answer on Stackoverflow
Solution 3 - IosJakab RobertView Answer on Stackoverflow
Solution 4 - IosVineesh TPView Answer on Stackoverflow
Solution 5 - IosJhonsoreView Answer on Stackoverflow
Solution 6 - IosCrashalotView Answer on Stackoverflow
Solution 7 - IosshuminView Answer on Stackoverflow
Solution 8 - IosVipul KumarView Answer on Stackoverflow
Solution 9 - IosAlvin GeorgeView Answer on Stackoverflow
Solution 10 - IosReinier MelianView Answer on Stackoverflow
Solution 11 - IosTarekView Answer on Stackoverflow
Solution 12 - IosKqtrView Answer on Stackoverflow
Solution 13 - IosEntroView Answer on Stackoverflow
Solution 14 - IosMaulik PatelView Answer on Stackoverflow
Solution 15 - IosKampaiView Answer on Stackoverflow
Solution 16 - IosmaralView Answer on Stackoverflow
Solution 17 - IosrestingView Answer on Stackoverflow
Solution 18 - IoszkonView Answer on Stackoverflow
Solution 19 - Iosuser14415508View Answer on Stackoverflow
Solution 20 - Iosuser5708587View Answer on Stackoverflow
Solution 21 - IosJohn HoltkampView Answer on Stackoverflow
Solution 22 - IosGee.EView Answer on Stackoverflow
Solution 23 - IosWajahat HussainView Answer on Stackoverflow
Solution 24 - IosPrime624View Answer on Stackoverflow
Solution 25 - IosPreeti RaniView Answer on Stackoverflow
Solution 26 - IosR. MohanView Answer on Stackoverflow
Solution 27 - IosTim ChristmannView Answer on Stackoverflow
Solution 28 - IosEvanView Answer on Stackoverflow
Solution 29 - IosBrianView Answer on Stackoverflow
Solution 30 - IosGujaminView Answer on Stackoverflow
Solution 31 - IosHardik VyasView Answer on Stackoverflow
Solution 32 - IosbuckleyJohnsonView Answer on Stackoverflow
Solution 33 - IosRick RobinView Answer on Stackoverflow
Solution 34 - IoslandonandreyView Answer on Stackoverflow
Solution 35 - IosNikView Answer on Stackoverflow
Solution 36 - IosthatmarcelView Answer on Stackoverflow