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

问题描述

| 我们目前在应用商店中有一个应用。它使用核心数据作为其持久性机制。我们有一个新版本可以使用,并且它具有一些架构更改。具体来说,我们添加了1个新实体,并向现有实体添加了新属性。根据我的理解和阅读,这是可能发生的最简单的迁移之一。没有字段删除,也没有要更改的关系。数据模型由5个完全没有关系的实体组成。 我们已经对数据模型进行了版本控制,并创建了一个.xcmappingmodel来处理迁移。我们通过向PersistentStoreCoordinator的创建添加以下选项来处理迁移:
NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:
                     [NSNumber numberWithBool:YES],NSMigratePersistentStoresAutomaticallyOption,nil];
目前,我们已经使用以下过程与团队中的一些成员成功进行了测试: 从设备和iTunes删除该应用程序的所有测试版本 前往应用商店并下载当前版本 对应用程序进行一些更改,以证明迁移成功 将新的二进制文件(使用相同的包标识符签名)拖到iTunes中并进行同步 在设备上加载新版本,确认在先前版本中所做的更改仍然存在,并且应用不会崩溃 我的问题是这样的: 有没有更简单/更好的方法来进行测试?我们担心的是,一旦应用程序发布了,就没有其他方法可以确保我们的用户获得最佳体验。     

解决方法

        我一直在为我的应用程序使用
Core Data
,并进行了大约7次升级,从旧模型迁移到新模型。 每当我准备发布下一个版本时,我总是使用
Model Mapping
测试迁移。只要我使源模型
is matched against corresponding
的每个实体和属性都与目标模型的实体和属性相符,我就不会遇到任何问题。 使用您自己的项目文件进行的测试与分发给客户的已发布版本的测试相同,因此您不必担心将旧模型迁移到新模型的测试是否有效。 换句话说,将要归档和提交的项目包的目标与客户正在下载的目标相同。 我对此确实充满信心,因为我已经毫无问题地使用不同版本的应用程序进行了测试。     ,        是。 希望您在源代码管理系统中管理源代码。如果没有,请尽快开始。 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 /设备上时执行转换。您可以使用旧格式的任何新版本来测试不同的数据集。     

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...