我正在开发一个核心数据iOS应用程序。我经历过一些数据库与模型不同步的情况,主要是由于我的错误(意外地编辑active xcdatamodel
而不是创建新版本)。这导致了测试版测试人员的数据丢失,他们更新到了糟糕的版本,并体验了应用程序崩溃。目前,我知道如何从这些崩溃中恢复的唯一方法是删除并重新安装应用程序。
有哪些最佳实践可以确保我的测试版测试人员的数据不会再次丢失?目前,我正在做以下工作:
NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithBool:YES], NSMigratePersistentStoresAutomaticallyOption,
[NSNumber numberWithBool:YES], NSInferMappingModelAutomaticallyOption, nil];
更有经验的核心数据开发人员还积累了哪些其他技巧?是否有一种从核心数据模型中恢复不同步的好方法?
发布于 2015-03-20 21:00:01
在任何时候更改模型时,创建一个新的模型版本都是,这是避免此类问题的方法。我不知道有什么方法可以让Xcode或其他工具对您强制执行。您需要确保不对现有的数据模型版本提交更改。在提交git (或您使用的任何文件)之前,密切关注哪些文件被更改。
您需要做的另一件事是确保使用与您的beta用户相同的升级来测试新构建。您正在进行更改,一切都很好,但是在推出新版本之前,先从测试人员使用的数据开始,然后升级到新版本。如果有任何模型不匹配的问题,您将遇到它,您可以在发送新构建之前修复它。最简单的方法通常是:
测试升级过程对于应用程序的任何新构建都是至关重要的,无论是beta版本还是发行版,这样您就可以在用户之前发现升级问题。
https://stackoverflow.com/questions/29173357
复制相似问题