I've got a mysterious problem with images and caching. In my project I've got 20 photos that elegantly fade in and out with a random function that changes up the order a bit.
I found that I didn't like one image in particular, image_1.png and wanted to push it back in the rotation (each time the app starts the images start with image_1.png). So, I swapped the name of image_1.png with that of image_16.png. When I look at image in the project folder and in Resources indeed the images are as they should be but when I run the app its the same old image that starts things out.
I have reset the sim, deleted the app from my iPhone, removed the images from the project and reimported them and still the same image.
Even odder.. I have an image_0.png that is no longer in the project file at all ... its not even on my hard drive.... but it shows up as well.
Do I have a ghost in my Mac or is this just seriously persistent cache?
Clean All Targets
Sounds like a persistent cache.
Let me guess: you have your images in a directory that you add to your project as a reference?
Yeah, that stuff's weird and buggy. Even in the latest xcode. I find it helps to recreate the folder with the new contents in a different place, then remove the old one from the project and add the new one. Perhaps even closing the project before re-adding.
XCode sucks.
Related
In one part of my app, I have four images, and I noticed that only two of them were displaying correctly on iOS, but all four worked on Android. After digging around, I noticed that the file extensions on the two that weren't displaying were uppercase, and I think all images need to be all lower case. So I changed the filenames in the project to all lower case and redeployed. Didn't work. Tried a few variations that didn't work, and finally made a copy of the images with a lower case extension and it worked.
Now I've made some changes to the images and copied them over the old ones in the project file. When I deploy it though, the app on iOS shows the old image. Both of these problems seem as though they could be resolved if I could flush out the cache or whatever is holding these images in the iOS emulators. Is there a way to do that?
I'm unable to load an image that I added to a .xcassets file today.
let image = UIImage(named: "slider_star")
print(image) // nil
Other older images from the exact same assets file load just fine (in the exact same spot in code). I can see the image just fine in .xib files, and if I put it in a UIImage in a .xib file it appears just fine in the simulator, too.
I've tried cleaning my build folder, restarting Xcode, using different simulators, and loading it as an Image Literal (can select it from the image list, but simulator crashes when it tries to render the image). I also made sure the target membership is correct, and that the assets file is in copy bundle resources, and that the image files are indeed inside the assets file in Finder. Also all settings for the image set are the same as other working image sets.
Any idea why this is happening?
edit: More things I've tried from suggestions in the comments:
change name from "star" -> "slider_star"
check that the color space of all images are the same as working ones
check that there is no extra white space at the end of slider_star.
also tried making another new image set, and re-using some of the confirmed working images in it, but this also comes back nil. I think this probably rules out any issue with the image files themselves, at least. It's almost like xcode isn't seeing the updates to the .xcassets file, but that's strange because the updates are showing up and working fine in .xib files.
Finally figured this out. This is a fairly large project with multiple targets, and it seems that the code in the target I'm working in is for some reason looking at the .xcassets file from another target (I checked the other xcasset file's target membership, and it's not included in the target I'm working in, so I don't understand why this is happening).
I can work around this by putting my images in the other xcasset file (don't really like this), or specifying the bundle with UIImage(named:in:with:).
If anyone knows why this is happening, I'd love to fix the root issue (maybe it's not an issue, and I'm just not understanding how it's supposed to work). I'll let this sit for 24 hours before accepting this as an answer.
I am new in cocos2d and I am making a game by using cocos2d.
I import an png Image and use it as sprite. It works very well.
But when I replace images by another image with same name and run it on simulator.
It works very well. But when I run it on my iPhone for testing then it show old image (not replaced image). while I have deleted it already.
can anybody tell me that how will I fix it.
Change the name of the image for another one, rebuild the project: it should raise an error and clean internally all the links to the image.
Rename back the image and compile. Hopefully, the iphone will show you the new image.
Try to clean the app from xcode and then reinstall. Let me know if it is not working.
clean project before building (press Shift+Command+K)
Clean project, go to project then clean.
Make sure the old image is completely gone from inside and anywhere near your project's folder. (Basically put it in the trash and then empty it).
Restart Xcode.
Uninstall the app from your device.
Restart your device.
Clean your Xcode project like everyone else has said.
Try to run your app.
Hopefully all of these (probably excessive) steps will do something for you.
I have used test images for my developing process and now I want to change my test images to another images. so I deleted the whole test image folder and change to new folder. But it still shows old images. How do I remove these reference from old images and use new images?
Clean your project (in the Xcode menu) images are cached when building and never go away when you want them to.
I am dealing with this really really annoying bug in X-Code where it seems to save images to some type of memory that seems impossible to clear.
I have replaced a bunch of images in which I am creating a clock animation however when I try to play the animation it showes all the old images, I have tried cleaning the app and still they continue to show even though I have deleted the images.. So then I tried changing the name of the images along with the code where they were getting called and now I'm getting a bunch more errors, So I'm just woundering if anyone knows how to get around this problem of xcode caching images.
You need to clean the build or delete it from the device/simulator. That usually takes care of it if you're sure the files are named correctly. Also make sure that you're using the correct case in your filenames, that messed me up a few times. :)
In the XCode explorer, right click on the image, use "Show in finder" and make sure they refer to the images you want.
Try using the Clean option from the Product menu in XCode.