如何使用App Storetesting核心数据迁移?

我们有一个应用程序,目前在应用程序商店。 它使用核心数据作为其持久性机制。 我们准备好了一个新的版本,它有一些模式的变化。 具体而言,我们添加了1个新实体,并为现有实体添加了新的属性。 从我的理解和阅读来看,这是可能发生的最简单的迁移之一。 没有字段删除,没有关系改变。 数据模型由5个实体组成,根本没有关系。

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

NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys: [NSNumber numberWithBool:YES], NSMigratePersistentStoresAutomaticallyOption, nil]; 

目前,我们已经使用以下过程成功地与团队的几名成员进行了testing:

  1. 从设备和iTunes中删除应用程序的所有testing版本
  2. 转到app store并下载当前版本
  3. 对将certificate迁移成功的应用进行一些更改
  4. 将新的二进制文件(使用相同的包标识符签名)拖到iTunes中并进行同步
  5. 在设备上加载新版本,validation在以前版本中所做的更改仍然存在,并且应用程序不会崩溃

我的问题是:是否有一个更容易/更好的方法来testing这个? 我们担心的是,一旦应用程序走出门外,没有其他方法可以确保我们的用户有最好的体验。

我一直在使用Core Data为我的应用程序,并升级了大约7倍,从旧模式迁移到新模型。

每当我准备发布下一个版本时,我总是使用Model Mappingtesting迁移。 只要我将源模型的每个实体和属性is matched against corresponding目标模型的is matched against corresponding实体和属性进行is matched against corresponding ,我就没有遇到任何问题。

使用自己的项目文件进行testing与testing分发给客户的testing相同,因此您不必担心将旧模型迁移到新模型的testing是否有效。

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

我非常自信这是事实,因为我已经完成了testing与我的应用程序的不同版本没有问题。

是。

我希望你在源代码pipe理系统中pipe理你的源代码。 如果没有,尽快开始。 Xcode 4提供了内置的git ,如果你没有其他的,使用那个。

如果您有旧的源代码,请保留两个不同的目录,1.0版本(现在在商店中)和1.1版本。 如果你可以操纵模拟器中的数据,这是理想的。

您将核心数据存储在应用程序的某个文件中,现在位于/Users/bshirley/Library/Application\ Support/iPhone\ Simulator/4.3.2/Applications/6D18BD0E-70C1-41FB-9BE8-F736CAAA9FFC/Documents/MyApp.sqlite

您可以从目录中复制该目录,将其作为新应用程序中的资源添加,并在每次新安装sim / device时执行转换。 您可以使用旧格式的任何新版本来testing不同的数据集。