Launch Screen Not Updating in Xcode - ios

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

Related

The launch screen image not showing up on my ios app on the device

I have an ios app but am trying to add a launch image to the start. I am testing on an old ios 6 phone (which I think is the retina 4.7). I added the launch image in assets catalog like
I then have it mentioned like so:
When I run the app on my iPhone 6 device it has no load screen. What am I missing? I used to have a LaunchScreen.storyboard but I have all these images of the right size made and want to use those.
I've had this issue before and I believe it's a bug with Xcode. It will still be trying to use the LaunchScreen.storyboard file.
Try the following:
Clean your project.
Delete the app from the device/simulator.
Restart Xcode/Simulator and re-run.
See https://stackoverflow.com/a/33698093/5032154 for more info.

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

iOS launch screen does not update

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)")
}
}
}

iOS simulator change devices not working

So I'm working through the BNR iOS objective c book, and I want to run a project on the iPad simulator. according to the book, I change the deployment device in the general settings for the project target as "universal," which I did.
However when I run and switch to any iPad on the simulator I get drawn back to the main method of my project. The iPad does appear after a delay, but without the app I built. I've set all the views in my xibs to "inferred" but I still can't run my project on iPad.
Any help would be appreciated, thanks.
This is probably because the app is crashing. it's possible if you created the app without setting it to universal it is missing a storyboard for iPad which would cause a crash and take you to that area. You should look at the console logs and see what is happening. There should be good information in there as to what is missing or why it's crashing right away.

iOS simulator issue

I downloaded xcode 4 and created a single view application with storyboard.
I added two views to the segue and tied them back to the home screen. After that I must have done something weird. The only thing I can think of is that I put the iOS simulator on the dock. I've updated the project and the changes are not being reflected on the simulator.
What I think is the issue is that I have two iOS simulators on the computer. For some reason whenever I try to find one in spotlight or in the applications it only shows one. When I click on it it is the old iOS simulator from Xcode 3. So what I did was I looked at stackoverflow and it suggested cleaning and running the project. That did not work.
After that I looked harder and found that I should reset content and settings on my new iOS simulator. That's what I did and now when I build and run it it is saying that it can't find my storyboard.
Generally you don't run simulator separately, but let Xcode fire it up for you. So, in Xcode, in the upper left corner you can select your scheme (and you select whether you want it on the simulator or the device). You can then select the simulator and then press the "Run" button and it should fire up the simulator for you. No need to fire the simulator up separately.
If Xcode is not behaving well (i.e. there are no error messages but the simulator never comes up automatically when you tell Xcode to run it on you simulator), I'd suggest (a) quitting and restarting Xcode (sometimes it gets in a weird state); (b) cleaning your project; and (c) try running it again.
In terms of not finding the simulator in Spotlight, it's now part of the Xcode.app bundle, so Spotlight won't find it. But if you want to dock it (not sure why, but feel free), just fire it up from Xcode by running an app on the simulator and when it appears in your dock, control-click on it and select "Options > Keep in Dock".

Resources