0

我目前在 App Store 中有一个使用 Core Data 的应用程序的 v1.1。

我正在通过为即将发布的现有实体添加一些属性来对 Core Data 模式进行简单的更改。由于我的幼稚,我从发布版本对现有的 Core Data 托管对象模型进行了上述更改。

在阅读关于轻量级迁移的指南时,我遇到了这个问题:

因此,绝对不能对已发布版本的应用程序的托管对象模型进行更改。也就是说,如果您的应用程序已经在 App Store 中,请不要更改该版本的托管对象模型中的任何内容。

这显然让我很担心,因为这是我在开发即将发布的版本时一直在做的事情。我一直在使用 Git,并且一直致力于。从这些 Git 修订版中恢复未触及的托管对象模型最不痛苦的方法是什么(假设 Git 中的某些修订版确实包含它)。

更新/编辑- 迁移当前用户的核心数据存储对我来说并不重要,因为大部分数据都可以重新下载,而且我正在使用核心数据来创造更流畅的体验。仅使用当前修改的 Core Data 托管对象模型会导致任何问题/崩溃吗?

4

2 回答 2

1

您将需要浏览您的提交历史,git log这是一种方法,并找到您想要回滚到的点。请注意您想要的提交的提交哈希。

git checkout commit-hash path/to/file

有关完整说明,请参阅此 SO 答案

于 2013-02-20T19:59:21.323 回答
1

我只是从 Git 中签出包含您发布的模型的修订版。然后将该模型复制到您当前的修订版中。那时,您可以创建一个新的模型版本,然后尽情享受。

如果您不想搞砸所有这些,您可以创建一个全新的模型并定义您的应用程序以使用该新模型,这将需要您将所有内容重新下载到该新模型和一个新的持久存储中。如果你走这条路,我还会编写一些代码来从他们的设备中删除旧模型和持久存储文件。

不过,我认为第一条路线应该不会太麻烦。

于 2013-02-20T20:01:02.970 回答