The old splash is only displayed for a moment (cache or bug?)

After the splash screen of the previous version is displayed for a moment, the updated splash screen is displayed. (Probably a cache problem?)


The solution is to uninstall the old version, restart the iPhone, install the new version only?

In other words, we give up on program changes, can we only recommend the method to the user?


- Using LaunchScreen.storyboard.

- It occurs when updating to a new version while leaving the old version on the iPhone.

(The reverse is also true. When updating from a newer version to an older version, the old splash is displayed after the new splash)

- Uninstall old version, restart iPhone, install new version and there is no bug

- There is no old version splash image file left in the new module


Are there any Xcode settings that affect splash other than LaunchScreen? (Especially when changing the splash)


Thanks.

Not a bug...


>Especially when changing the splash


Did you use the Product menu w/the option key pressed, selecting to 'clean build folder'...?


Using this tactic as a routine can help flush the index/cache that contains the old code, etc., especially when changing the launchimage/storyboard.


And yes, deleting old versions of the device when you are testing helps to insure the new one is being used.

Sounds like Jenkins might be causing your local testing issues. Can't help w/that, except to suggest that an ad-hoc install sometimes better replicates a store install, if you prefer to confirm that process.


>Furthermore, if you download a new app when the old version uninstalled, the problem, old splash appears momentarily, does not occur.


Great, that's how it should work in that example, thanks.


>I would like to avoid as much as possible the method users uninstall old app, restart, and reinstall the new app.


Good, because that method is strongly discouraged, and according to your first statement "does not occur", isn't necessary.

I tried some other approaches.


1. Clean & Build → No change


2. Rename the Splash image loaded in LaunchScreen.storyboard.

For example, I loaded "splash" but changed it to "splash2".


Method 2 was effective on our iPhone 8+, iPhone 7!

HOWEVER, it was invalid on iPhone XS Max.

Is it due to iOS version (12.1), or is it special only to the device (iPhone XS Max)?


That is, the method of renaming images worked well in some devices.

But, on this method did not work well XS Max.

Any ideas for this reason?

> Rename the Splash image loaded in LaunchScreen.storyboard.


In my experience, juggling image names leads to situations similar to yours. I've learned to avoid that practice as it only seems to further play into Xcode's habit of holding onto indexed assets, which is by design, a design that relies on those indices to help speed things the next time you hit the build button.


If I want to change an image name, I remove it from Xcode, duplicate the image in the Finder, give it a new name, then re-add it to the Resource window, confirming the new named image is enabled in compiled resources. Bit of a pain, but not a common measure since I try to work with committed images before adding them to a project. Once in the project I leave them alone. More to it, but that's a topic for another time.


In your example, what is your process when changing the image fed to launchImageStoryboard the second time? Have you checked compiled resources to confirm you've disabled the old image? What do you see in the assets folder for launchimageSB in the Finder? In the project, which image is in which 'well' for which device? Did you completely remove the old image from the project followed by yet another option-clean build folder? What happens if you create a new project, add one image for launchimage, then repeat the testing that exposes your current issue?

The old splash is only displayed for a moment (cache or bug?)
 
 
Q