是否可以将已更改xcdatamodel的iOS应用程序安装到已安装先前版本的设备上

时间:2014-11-06 18:30:00

标签: ios objective-c xcode

如果我改变我的iOS应用程序上的xcdatamodel(例如添加一个实体和一些属性),那么当我尝试安装我的iOS应用程序的更新版本时,如果已经在设备(或模拟器)上安装了以前的版本 - 安装失败。我已经阅读了xcdatamodel包等的轻量级迁移,但无法解决安装问题。我的问题是;实际上是否可以将iOS应用程序(带有更改的数据模型)安装到具有先前版本的设备上。

1 个答案:

答案 0 :(得分:0)

轻量级迁移应该可以满足您的需求,这是更好的解决方案! 检查您是否需要帮助http://www.raywenderlich.com/27657/how-to-perform-a-lightweight-core-data-migration

如果您遇到严重问题,可以删除SQL存储并在persistentStoreCoordinator方法中重新创建它。您将丢失所有用户数据。这对于调试很有用,但在生产中没那么多。

只需添加:

//delete the store
[[NSFileManager defaultManager] removeItemAtPath:storePath error:nil];
    // recreate the store
    if (![persistentStoreCoordinator_ addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:nil error:&error]) {
        NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
        abort();
    }

你的:

- (NSPersistentStoreCoordinator *)persistentStoreCoordinator {

如果看起来像:

if (![persistentStoreCoordinator_ addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:nil error:&error]) {