如何测试核心数据迁移是否使用adhoc构建工作?
问题描述:
我已经配置我的应用程序使用的迁移例如: -如何测试核心数据迁移是否使用adhoc构建工作?
NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithBool:YES], NSMigratePersistentStoresAutomaticallyOption,
[NSNumber numberWithBool:YES], NSInferMappingModelAutomaticallyOption, nil];
我想现在要做的就是创建一个临时搭建并测试它在我的设备。
通常我会从iTunes中删除应用程序并删除设备上的应用程序,然后将新版本删除到iTunes中,然后同步将新版本复制到我的设备。
但为了测试迁移,我希望旧的数据库留在设备上。我应该怎么做?
答
更新ad hoc构建的最佳方法是使用名为TestFlight的第三方工具。它允许您监视崩溃报告和安装构建并远程执行,而且您不需要iTunes。这很棒,因为每次使用您的应用程序都会更新应用程序,而不是每次都删除它。
答
这很简单 - 一旦你知道去哪里找#在你的AppDelegate您设置了NSPersistentStoreCoordinator - 你需要一些选项添加到该告诉它来处理自动迁移:
NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithBool:YES], NSMigratePersistentStoresAutomaticallyOption,
[NSNumber numberWithBool:YES], NSInferMappingModelAutomaticallyOption, nil];
NSError *error;
_persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel: [self managedObjectModel]];
if (![_persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeUrl options:options error:&error]) {
// Handle error
NSLog(@"Problem with PersistentStoreCoordinator: %@",error);
}
然后,你需要在Xcode做:
- 选择xcdatamodeld文件
- 在顶部选择编辑器菜单 - 然后选择添加模型版本
- 现在您的xcdatamodeld文件有两个(modelname.xcdatamodel & modelname2.xcdatamodel)。
- 现在modelname.xcdatamodel有绿色对勾意味着它是当前的版本,但我们需要改变modelname2.xcdatamodel作为当前版本
- 选择xcdatamodeld文件,然后选择在顶部视图菜单 - 然后选择实用程序 - 然后选择显示文件检查器显示在Xcode的右侧,然后选择版本控制的核心数据模型 - 有当前(DropDownList) - 选择modelname2(您刚做的当前版本有绿色复选标记)。
- 现在,当您将此版本安装到具有旧型号的设备上时,它将自动将该型号升级到新型号。
保留所有已更改的文件,然后一旦准备好部署更新,您将删除所有中间文件,并只部署最旧和最新的型号。反之亦然(步骤4,5,6)适用于最新到旧型号(当前)
答
不要从iTunes和应用程序中删除应用程序,然后将新版本更正到iTunes中,然后同步复制通过新的构建到您的设备。总是保持[捆绑版本字符串,简称]现在更新一个新的更新旧的一个新的。我已经用Testflight完成了。
作为我的问题的状态,我该如何安装一个临时搭建在设备上的现有应用程序,而不从设备删除应用程序 – TheLearner 2012-01-11 12:23:51
你的两个构建必须是临时性的第一安装旧的(之前你实际的变化)与[套装版本字符串,简称]在plist中更新新的[套装版本字符串,简称]比旧的更大。 – 2012-01-12 05:19:16