Image in LaunchStoryboard.storyboard Doesn't Update

October 12, 2016

Image in LaunchStoryboard.storyboard Doesn't Update

At my work we have decided that the time has come to change the logo on our launch screen. Seems to be a trivial task - get new images, substitute old ones with the new ones, build it and ship it. What could possibly go wrong?
Surprise! Launch the app - an old image is looking at you from the screen of your Apple device... No matter what I have tried to do in code - the image didn't want to change to a new one I have put into .xcassets folder.
I spent 2 hours until it finally started working properly and the solution was not quite obvious.

<!--more-->

Springboard and your LaunchStoryboard.storyboard

I've never paid attention on how LaunchStoryboard.storyboard (or any other name you use) really works with the system. Up until this problem with this wild image that didn't want to change to a new one.

Thanks to this thread on Apple's forum I was able to get to the root of the problem - Springboard caches your LaunchStoryboard.storyboard's images. For definite amount of time. And I have no idea for how long.
It seems that the easiest way to fix it is to clear the cache by rebooting your Apple device. Perfectly fine solution for a developer, why not? But it is not a solution when it comes to the end users. How are you going to explain it to a user? Present a popup saying:"Due to the cached stuff in Springboard - you don't see our new awesome launch screen image! Please reboot your device and open our app again!"? Funny, huh?

Solution

Again, thanks to the thread I have referenced above I found a way to solve this issue - name your new image differently from the one there was before in case your new one has the same name as the old one and put it out of the *.xcassets folder to the project directory and reference it in your UIImageView. And that's it. Sound stupid easy but oh gawd how much rage I had.

Comments

comments powered by Disqus