iOS launch screen does not update - ios

I've updated launch screen on an enterprise app, but it won't update when installed on an iPad with the existing app. I've tried completely deleting the app before installing a new version, but it still launches with the old launch screen image.
I've tried installing the new app on another iPad where this app was never installed and the new launch screen appears as expected. Both iPads run the same iOS v9. The app was built with xCode 7.2
In summary I've tried the following scenarios:
updating existing app (version 1) on iPad A - with a new app (version 2)
iPad A, loads the new app v2 with launch screen from version 1
installed new app (version 2) on iPad B, which never had this app.
iPad B, loads the new app v2 with correct launch screen
then I installed old app version 1 on iPad B
iPad B, now loads the old app v1 with launch screen from version 2
It seems the iPad somehow caches the launch screen from the very fist install regardless which version it is. Deleting the app and reinstalling does not seem to help and it does not look code related as the correct launch screen images was loaded on iPad B

I just had this problem and i found that deleting the app off the device or simulator, then restarting the device or simulator seems to fix the issue.
I found just restarting the device didn't work.

I had tried many kinds of solutions and restart your iPhone is the only way.

In xcode, under Assets.xcassets, I clicked on LaunchImage and then unchecked Universal, checked iPhone, unchecked iPhone, and checked Universal again. Then ran build and it cleared the old image.

Simulators and iPhone caches the launch images.
this can help you
1>Clear the derived data under your developer/xcode folder
2>reset the device by pressing home button and lock button at same time
3>Push your code to device and it will work, if this doesnt work then creat ipa file and install using itunes after resetting the device and it will show the new launch images

The answer by Steve still holds as of iOS 13.2.3, but I wanted to add a few more items just to back up this point that otherwise exceed the restrictions of a comment.
For starters, I did delete the app, restart the device, etc but because this issue occurs when a user updates through the app store, those fixes are simply not viable.
Then, I decided to take more drastic actions within the app to try and remedy this. These actions were taken with TestFlight builds.
In my particular case, the problem stems from a version string that misrepresents the installed version.
Step 1 then was to simply remove the UILabel in question. Re-running the app would still cause the label to appear in the app.
Step 2 then was to create an entirely new LaunchScreen storyboard and set it as seen here:
Launching the app still presents the old launch screen.
This leads me to believe that something in the project structure is the source of the caching, and no reasonable changes to the LaunchScreen by the developer are going to get around this.
Update
The app has been released to the Appstore, and using the official store release, the app presents the correct launch screen.

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.

Just delete app from simulated iPhone home screen.
On iPhone 11 Max version 2-finger click and drag up from outer margin of the iPhone which will bring you to the home screen and exit your simulated app.
Then 2-finger click and hold your app, delete app and close simulator.
Open Xcode and click play button to run your simulation and the launch screen should be updated.
P.S. Deleting Xcode cache and derived data couldn't hurt.

See Rambo's post about the issue. At least on iOS 13 you can clear this cache yourself:
import UIKit
public extension UIApplication {
func clearLaunchScreenCache() {
do {
try FileManager.default.removeItem(atPath: NSHomeDirectory()+"/Library/SplashBoard")
} catch {
print("Failed to delete launch screen cache: \(error)")
}
}
}

Related

Launch Screen Not Updating in Xcode

IDE: Xcode 9.0
My app has an older launch screen that I want to replace with a new one. Trouble is, none of the changes I make to my Launch Screen.storyboard file will show up in Simulator or on devices unless I erase all content and settings first.
I can't seem to find anything wrong in build settings, but maybe I am missing something.
If you're seeing the old launchscreen before the new one, then I'd say it's normal. It happens to me too. I'm certain that this does not happen in production (app from App Store).
If you just cannot see the image you're trying to show in your launchscreen nib or storyboard, I've posted an answer here: https://stackoverflow.com/a/46398588/3231194

Launch Images not displaying after updating to Xcode 8.2.1

I downloaded Xcode 8.2.1 as I had updated my iphone to the latest version. I ran xcode and updated the current app I'm working on to the project recommended settings upon first opening of my project (This pops up after new version of xcode). After this I tried to run the project on my device (iPhone 6) and it simply loads an enlarged app icon instead of the iphone 6 size launch screen which I have in the Images.xcassets folder. Annoyingly I tested the app on the simulator (iphone 6, 10.2) and it works completely as it had been doing prior to xcode 8.2.1.
I'm at a complete loss as to what could be the problem: ive tried everything from restarting xcode, cleaning project, deleting and re-adding launch images, and made sure the launch screen entry was empty as I don't use them (removed the option from the plist as well).
Everytime I run the app on my own device, it crashes and is looking for a completely different storyboard (I use multiple storyboards for different screen sizes, which is a lot of work but works for me) and thus its telling me that there isn't a launch screen for the iPhone 6 screen size it has detected. But obviously there is as it works on the simulator.
Anybody have any reasons as to why this might be? I'm thinking it could be a bug on behalf of xcode 8.2.1, a lot of other users seem to be having odd problems as well with this version. For further clarity, I opened up another project but didnt update it to the recommended project settings that xcode displayed again, I ran the app on my device and hey presto! It worked with no issues.
Is there any way of reversing the update to the recommended project settings?
Here also Same Issue, i upgraded to 8.3:
Ans: remove "Launch Screen Interface file base name" from plist. it will work.
Solved: The solution was simple and I wasted 5 hours on it. All I had to do was (1) remove the launch images from the xcassets folder, (2) rename launch images without .png extension and (3) I simply added them back into the Images.xcassets folder and ran the app again, this time it worked and showed the launch image correctly.
This might save someone hours of agony as I didn't think Xcode would be funny with a file extension such as .png

Old Launch Screen and black display after iOS app update

I made an iOS app with Xcode and Swift. In v2, I also updated Launch Screen and Launch Images.
I first installed v1 of my app from the App Store. When the new, v2, was available from the App Store I updated my app on my devices. That's an iPhone 5s with the newest iOS and an iPhone 7 Plus with the newest iOS.
After updating my app on the iPhone 7 Plus it still showed up the old Launch Screen. Restart didn't help. I had to delete and reinstall the app to get the new Launch Screen shown up.
On iPhone 5s I didn't get any Launch Screen or Launch Image, I got a black screen for the time the Launch Screen shot get shown. I deleted and reinstalled the app. That didn't help. I also had to restart the device after reinstalling the app to get the right v2 Launch Screen.
Why that strange behavior? What can I do? I cannot ask my users to reinstall the app and restart the devices.
After updating the Launch image, delete the application cache which is stored in DerivedData folder.
If you are using xib or storyboard for displaying LaunchScreen move the images into an asset catalog, rather than using the png filenames.
The only workaround that works for me was to add the images outside Images.xcassets folder. After modified this and rebuild the app, it worked expected.

Why Can't I delete or Remove iPhone / iPad Duplicate Enterprise App Icon Copy?

I created an enterprise app in Xcode 4.6.3 and posted it on a website. The app succesfully downloads to iPhone5 and iPad3 (both running iOS 7). The app runs just fine. However, it created a duplicate "ghosted" app icon on both devices that cannot be removed See Screen Capture.
I tried removing it by long-pressing the app icon and touching the "X" on the device. I also tried removing it in iTunes. No luck. I updated to Xcode 5.0.1, developed for iOS 7, recompiled and repeated the process. No luck. The duplicate icon remains!
This is not an issue on devices not running iOS 7.
A similar thing happened to me while trying to delete an app that was being built at the same time with XCode.
Try restarting the phone by pressing and holding the button on the top and the circle button on the bottom.
When the OS repopulates the dashboard on the next launch, it should detect the discrepancy and either not display the bad icon or make it available for removal.
If your Apps don't includ iOS, you are surely able to delete Apps from iPhone, do all of your 3rd party apps no longer show the delete "x" when wiggling? If so, try the following steps as needed:
Restart phone
Reset phone (no data loss): press both home and power buttons for at least 10 seconds, releasing when the Apple logo appears
Settings > General > Reset > Reset All Settings
Restore iOS using iTunes, also restoring a backup
Restore iOS as new, without using a backup

How can I re-enable the letterbox mode using the iPhone 5 and Xcode 4.5.2 without deleting the app?

I'd like to re-enable the letterbox mode on the iPhone 5 for my app. Using Xcode 4.5.2 and building an app for iPhone 5, I generated an 1136x640 launch image and it was named Default-568h#2x.png. I have sinced removed the launch screen and in the project summary the space for that image is empty. Also, I have removed any instances I found within the project folder. However, my app continues to be displayed using the full screen on the iPhone 5 and what I want is to be able to use the letterbox mode again. I believe this can be accomplished by deleting the app, but how can I re-enable the letterbox mode using the iPhone 5 and Xcode 4.5.2 without deleting the app from the phone?
Tap 'Product'->'Clean' in Xcode and remove the application from your phone. Then rebuild your project and there shouldn't be any cached version of the Default-568h#2x.png anywhere.
Have you tried deleting the app from the device and redeploying it? I have had issues with icon files etc not being refreshed unless the app is removed and freshly deployed.
Alternatively you can connect your iPhone and open organiser. Select the device and app and hit 'Download'.
Then add the archive you just saved back to your project. Then go to the Project Scheme Drop Down Edit Schemes>Run and select the app data package.
Redeploy your app from scratch and it will contain the saved state.
I had the same problem.
I disconnected my iPhone, removed the App from the iPhone's installed Apps, did a Project Clean in XCode, reconnected the iPhone and did a full build and redeploy to the iPhone.
Success! Letterboxing!

Resources