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?
Related
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.
ITunes Connect has different buttons for uploading screenshots (e.g. one for 3.5 inch retina)
Can I use each button more than once to upload more than one screenshot - or will a second upload overwrite the first? I know it says "screenshots" (plural) but it is not clear whether that is because I need to combine several screenshots into one image and upload it. Especially since the available sizes seem to be larger than the default screenshot size that XCode produces.
OK. Found the answer by taking a plunge and just trying it. Yes, you can add a number of screenshots under each category. They are displayed for you, and it seems that you can change them later as well. So it is really easy.
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.
I am developing an iPhone application using openGl ES 2.0, and after a lot of testing in the simulator I installed the application on my iPhone(3GS) to see how well it preformed. When the app launched it started up fine with no errors, but nothing showed up, however the background was the appropriate color.
Does anybody have any ideas/pointers about what might be causing this issue? If code/details would help just let me know what section of code you would like to see.
Check the constraints on various functions you may use. For example, by default the width and height for glTexImage2D must each be powers of 2 (or powers of 2 plus 2, if you are using a border). There is an extension that allows for non-power-of-two textures, but in my experience this extension is not present or is not completely implemented on at least some devices (i.e. it works for GL_CLAMP_TO_EDGE but not GL_REPEAT).
The Device is strict about case-sensitivity in filenames -- check to make sure that if you are loading Shaders, that the filenames referenced in your code are identical to their actual filesystem names.
Also, if you are in xCode 4, go to your Target Build Phases settings and make sure all of the shaders you use are in Copy Bundle Resources.
Finally, if the shaders appear in 'Compile Sources', you should remove them from there. You'll need to Clean your project and then re-build.
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.