I would like to update some images (gif) in my application. After replacing the gif files in the folder, I build the application and run it; the images shown in simulator are not updated. I tried to "Clear all target" and then re-built the application; the new images can be shown in the simulator.
Does it mean the images will be successfully updated in the devices which have installed the older version of the application? Should I modify the code?
You cannot update the images in the older version of your applications. You will have to make a fresh release with the new images inorder for the changes to be reflected in your application.
Once the binary is compiled and distributed any changes to the application can be done by rebuilding and submitting the application. However if you are doing testing only then delete the app and reinstall after a clean build.
Hope this clears things for you.
Related
I have an iphone application with custom bundle in resources with hi-resoultion photos (sized about 150mb). I need to reduce application size, so i do an update and remove this bundle from resources, but when i apply new update on installed application, its size remains the same.
Is it possible to "update" application resouces after update from appstore?
Solved my question.
The problem was that installing application directly from xcode to the phone didn't act the same way like installing a new app version from appstore. The version on the iphone kept old resources in bundle after installing via xcode. But I emulated situatuion like "appstore new version install" using TestFlight. I made 2 different version with diferrent bundles and installed one after another. The size of app changed! The problem was solved.
Maybe it was some bugs - stangely cleaning, removid derived data, didn't help at all.
So I have this app that is already on the app store. To get support for multi language localization we recently changed the localization configuration.
Old configuration:
./Localizable.strings
New Configuration:
./Swedish.lproj/General.strings
./Swedish.lproj/Localizable.strings
./Swedish.lproj/Settings.strings
If I remove the old version and install the new one everything works as expected, but if I leave the old version on the phone when I install the new one, the translations in ./Swedish.lproj/Localizable.strings won't be visible. So it seems to me like the old ./Localizable.strings is still left on the phone, hiding the new ./Swedish.lproj/Localizable.strings. The translations in ./Swedish.lproj/General.strings and ./Swedish.lproj/Settings.strings both works.
My fear is that if we release the update as is the users would be forced to uninstall the app before installing the update to get the translations to work, which would mean that they lose all their saved data. So you can see why this issue has high priority.
If I have understood the cause of the problem correctly, my question is how do I get rid of the ./Localizable.strings already present on the phone? The more general question would be how do I solve this problem?
Are you testing this in debug mode and Xcode is installing the new binary onto the device/simulator or are you doing an Adhoc build-and-archive and then test the update via itunes?
I know that xcode at times will not overwrite files when doing an build and run in debug mode. A touch of the file will not help, but only a clean-all, exit and restart of both Xcode and simulator cures it.
If you are using the adhoc build then the complete app bundle sould be overwritten. If this is not working something serious is at fault.
I have created a new version of iPhone app. I wanted to change the icon, so:
I added the icons in different sized to the Resources folder of my Project in XCode:
I specified the icon files in the info.plist file:
in iTunes Connect I added new version of my app and replace the old icon with the new one. The new icon is now visible when I log in to iTunes Connect.
The effects:
I can see the new icon when I run my app on simulator.
I can see the new icon when I visit AppStore with iTunes on my Mac.
I can see the OLD icon when I visit AppStore on my iPhone.
I can see the OLD icon on my iPhone after upgrading my app to the new version.
Any ideas why the old icon is still visible in some of the places?
kind regards,
Jakub
Use "Build > Clean all Targets" and then build and run. Xcode doesn't always see that images have been updated, and leaves them out of incremental builds. Cleaning before building makes Xcode build the app file from scratch, and will pick up any images it's failing to get.
Why it's inconsistent is that different build types (simulator vs device) are different build targets, and got built with different versions of your images. Not unusual.
The one thing that this WON'T address is the old icon on the iPhone's app store app. You might need to update your app store submission with fresh images.
I'm working on an iPhone app and about to release version 2. We'll be changing the core data model and I'd like to simulate the upgrade process in the simulator before releasing it to users and potentially causing data loss for them. There doesn't seem to be any real good doucumentation on how to do this in a sandbox before releasing it.
The process I've used in the past has been to wipe any working version from the Simulator, check out the previous version of my application from my repository, compile and install that, work with it for a bit, then compile and install the new version of the application. The installation of the new version should simulate the upgrade process, where you can test your data migration to your new model.
I also repeat this process on the device to make sure no problems are encountered there either.
there are some cases that cannot be simulated in Xcode. Look at this Apple page: https://developer.apple.com/library/ios/technotes/tn2285/_index.html
You have to create IPA file and simulate update via iTunes.
I agree with Brad's overall approach. To save a little time, I would just save the sample set of data that you create with the older version of your app. This way you won't have to keep recreating the sample data set if things don't go right. You will just simply copy the sample data set back into your app's directory in the Simulator.
Your app's directory is located at ~/Library/Application Support/iPhone Simulator/User/Applications/A GUID for your App on your development machine.
Application Settings.bundle contains a version number, which is automatically generated during build. From build log I can see that new value is written there, also when looking inside the file itself in MacOS X Finder I see correct updated value.
Settings in iPhone simulator or in real iPhone shows me the old value. Removing application and reinstalling is so far the only way I've managed to get the new updated value visible.
Question: how can I force iPhone Settings application to read my new latest updated bundle file?
Some background info, which might or might not be related: I install application only via Xcode into both simulator and iPhone. Is this the problem? Just found this in Apple docs, not sure what it actually says. Seems to contradict itself (last chapter)...
Each time you reinstall your application, iPhone OS performs a clean install, which deletes any previous preferences. In other words, building or running your application from Xcode always installs a new version, replacing any old contents. To test preference changes between successive executions, you must run your application directly from the simulator interface and not from Xcode.
So Xcode always replaces old content, but to test changes I cannot use Xcode? What was that? Done both (after installation via Xcode) and didn't see new values in settings. Any ideas how does it actually work? Do I always have to make non-Xcode installation?
Try cleaning and building. It seems that xcode caches dates and doesn't notice the change that your script is making. I've had similar things happen, clean always fixes it, but it is indeed a nuisance.
Make sure to shut down the Settings app running in the background on device. It looks like Settings caches settings while it's running - but pulls the updated values when the Settings app is re-launched.
In my case, it seems that my modified root.plist, created/edited via the Xcode property list editor, just wasn't being saved.
There was no problem at all with the Settings Bundle being copied over to the iPad. A quick cmd-S followed by a rebuild and go/debug updated Settings on the iPad straight away - no app uninstall/reinstall even needed. You'd think there'd at least be a haven't-saved-it warning from Xcode, as there always is for code source files.
I just tried this and it worked.
In Xcode go to : Window->Organizer,
then view installed apps on the connected iPad/iPhone, remove the app, then recompile and run your app on the device.
I think the issue has something to do with the iPad's cache.