如何使用App Store中的应用程序测试核心数据迁移?

Mar*_*ski 12 core-data core-data-migration ios

我们有一个应用程序,目前在应用商店中.它使用Core Data作为其持久性机制.我们准备好了新版本,并且它有一些架构更改.具体来说,我们添加了1个新实体,并为现有实体添加了新属性.根据我的理解和阅读,这是可以发生的最简单的迁移之一.没有字段删除,也没有要更改的关系.数据模型由5个实体组成,完全没有关系.

我们对数据模型进行了版本化,并创建了一个.xcmappingmodel来处理迁移.我们通过在PersistentStoreCoordinator的创建中添加以下选项来处理迁移:

NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:
                     [NSNumber numberWithBool:YES], NSMigratePersistentStoresAutomaticallyOption, nil];
Run Code Online (Sandbox Code Playgroud)

目前,我们已使用以下流程成功测试了该团队的多名成员:

  1. 从设备和iTunes中删除应用程序的所有测试版本
  2. 转到应用商店并下载当前版本
  3. 对应用程序进行一些更改,以证明迁移是成功的
  4. 将新二进制文件(使用相同的包标识符签名)拖到iTunes中并同步
  5. 在设备上加载新版本,验证先前版本中所做的更改是否仍然存在,以及应用程序是否崩溃

我的问题是:有更简单/更好的方法来测试吗?我们担心的是,一旦应用程序出现,没有其他方法可以确保我们的用户获得最佳体验.

pet*_*ine 5

我一直在使用Core Data我的应用程序并升级了大约7次,从旧型号迁移到新型号.

每当我准备发布下一个版本时,我总是通过使用来测试迁移Model Mapping.只要我创建源模型is matched against corresponding实体的每个实体和属性以及目标模型的属性,我都没有遇到任何问题.

使用您自己的项目文件进行测试与测试分发给客户的已发布项目一样,因此您不必担心将旧模型迁移到新模型的测试是否有效.

换句话说,您的项目包的目标(将被存档和提交)与客户下载的目标相同.

我非常有信心,因为我已经使用不同版本的应用程序进行了测试,没有任何问题.