http://stackoverflow.com/questions/2524326/how-to-test-an-iphone-application-update
I already have an iPhone application (version 1.0) available in the App Store and am ready to submit a newer version (version 1.1). How do I test the new upgrade to make sure that the current sqlite database and property list files on the earlier version do not get deleted/overwritten etc? The new version assumes the old data in both the sqlite database and property lists remain.
Or better yet, is there a resource I can use to walk me through what to watch for when developing an application update?
The way we tackled this when we wanted to test our database upgrade code was to use ad hoc distribution.
We had our testers download the 1.0 app from iTunes and install it on their test devices.
Then we built an Ad Hoc distribution of the app using a configuration based on the Release config, and made sure that it had the same bundle identifier. As long as the bundle identifier is the same, the new app should overwrite the previous version.
We asked our testers to install the ad hoc build as they normally would, by dragging it into itunes and then syncing the device to simulate upgrading.
As far as I know, this is identical to the user downloading and installing an upgrade via the app store on the device itself.
As you'd expect, the documents folder should be left intact, leaving your database in place, and your app should be able to run it's upgrade code to modify the database in the way you need.
Hope this helps
Test like so:
- delete app from device.
- install v1.0 app (or .ipa file) into iTunes
- sync to device, iTunes will install the app
- launch app on device, create and save data, etc.
- quit app on device
- install v1.1 app (or .ipa file) into iTunes; iTunes will ask to confirm replacing older version of the app.
- sync to device, iTunes will update the app
- launch app on device
- test using existing data with new version of the app.