我已经在App Store中提供了一个iPhone应用程序(版本1.0),并准备提交更新版本(版本1.1).如何测试新升级以确保先前版本上的当前sqlite数据库和属性列表文件不会被删除/覆盖等?新版本假定sqlite数据库和属性列表中的旧数据仍然存在.
或者更好的是,是否有一个资源可以用来指导我在开发应用程序更新时要注意什么?
当我们想要测试数据库升级代码时,我们解决这个问题的方法是使用ad hoc发布.
我们让我们的测试人员从iTunes下载1.0应用程序并将其安装在他们的测试设备上.
然后,我们使用基于Release配置的配置构建了应用程序的Ad Hoc分发,并确保它具有相同的bundle标识符.只要捆绑包标识符相同,新应用程序就会覆盖以前的版本.
我们要求我们的测试人员像往常一样安装ad hoc构建,将其拖入iTunes中,然后同步设备以模拟升级.
据我所知,这与用户通过设备本身的应用程序商店下载和安装升级相同.
正如您所期望的那样,文档文件夹应保持不变,保留数据库,您的应用程序应能够运行其升级代码以您需要的方式修改数据库.
希望这可以帮助 :)
测试如下:
从设备中删除应用.
将v1.0 app(或.ipa文件)安装到iTunes中
同步到设备,iTunes将安装该应用程序
在设备上启动应用程序,创建和保存数据等.
退出设备上的应用程序
将v1.1 app(或.ipa文件)安装到iTunes中; iTunes将要求确认更换旧版本的应用程序.
同步到设备,iTunes将更新该应用程序
在设备上启动应用
使用新版本的应用程序使用现有数据进行测试.