我目前在App Store中有一个使用核心数据的应用程序v1.1。
我正在通过向即将发布的版本的现有实体添加一些属性来对Core Data架构进行简单的更改。由于我的天真,我从发布版本对现有的Core Data托管对象模型进行了上述更改。
在阅读有关轻量级迁移的this指南时,我遇到了这个问题:
因此,永远不要对发布的应用版本的托管对象模型进行更改。也就是说,如果您的应用程序已经在App Store中,请不要更改该版本的托管对象模型中的任何内容。
这显然让我很担心,因为这是我在处理即将发布的版本时所做的工作。我一直在使用Git,并一直致力于此。 从这些Git版本恢复未受影响的托管对象模型的最不痛苦的方法是什么(假设Git中的某些修订确实包含它)。
更新/编辑 - 迁移当前用户的核心数据存储并不重要,因为大多数数据都可以重新下载,而我正在使用Core Data创建更流畅的体验。 仅使用当前修改的Core Data托管对象模型会导致任何问题/崩溃吗?
答案 0 :(得分:1)
您需要查看提交历史记录,git log
是一种方式,并找到要回滚的点。请注意您想要的提交的提交哈希。
git checkout commit-hash path/to/file
有关完整说明,请参阅this SO answer。
答案 1 :(得分:1)
我只是检查Git中包含您发布的模型的修订版。然后取出该模型并将其复制到当前版本中。此时,您可以创建一个新的模型版本,并以您的快乐方式。
如果您不想搞砸所有这些,您可以创建一个全新的模型并定义您的应用程序以使用该新模型,这将要求您将所有内容重新下载到该新模型和新的持久性存储中。如果你走这条路,我还会编写一些代码来从他们的设备中删除旧模型和持久存储文件。
我认为第一条路线不应该太麻烦。