iphonesqliteupdatingproperty-list

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?


Solution

  • 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 its upgrade code to modify the database in the way you need.

    Hope this helps :)