我们有一个应用程序,目前在应用商店.它使用核心数据作为其持久性机制.我们有一个新版本准备好了,它有一些模式更改.具体来说,我们添加了一个新实体,并向现有实体添加了一个新属性.从我的理解和阅读,这是可以发生的最简单的迁移之一.没有现场删除,没有关系改变.数据模型由5个完全没有关系的实体组成.
我们已经对数据模型进行了版本化,并创建了一个.xcmappingmodel来处理迁移.我们正在通过添加以下选项来创建PersistentStoreCoordinator来处理迁移:
NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys: [NSNumber numberWithBool:YES],NSMigratePersistentStoresAutomaticallyOption,nil];
目前,我们已经使用以下过程成功测试了团队的几名成员:
>从设备和iTunes中删除应用程序的所有测试版本
>转到应用商店并下载当前版本
>对应用程序进行一些更改,以证明迁移成功
>将新的二进制文件(使用相同的包标识符签名)拖入iTunes并进行同步
>在设备上加载新版本,确认以前版本中所做的更改仍然存在,并且应用程序不会崩溃
我的问题是这样的:
有更容易/更好的方式来测试吗?我们关心的是,一旦应用程序出门,没有其他方法可以确保用户有最好的体验.
解决方法
我一直在为我的应用程序使用Core Data,升级了大约7次,从旧机型迁移到新机型.
每当我准备发布下一个版本,我总是通过使用模型映射来测试迁移.只要我使每个实体和源模型的属性与目标模型的对应实体和属性相匹配,我就没有遇到任何问题.
使用自己的项目文件进行测试与发布给客户的测试一样,所以您不必担心将旧模型迁移到新模型的测试是否有效.
换句话说,您的项目包的目标(将要归档和提交)与客户下载的目标相同.
我很自信这是这种情况,因为我已经用不同版本的我的应用程序进行了测试,没有问题.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。