iOS Core Data自动轻量级迁移有时会失败

时间:2013-05-29 23:03:18

标签: ios core-data core-data-migration

在我的应用程序的最新版本中,我向现有表添加了1个新列。没什么大不了的,只是一个简单的旗帜。我提出了数据模型版本并将其设置为活动模型,并且我已成功使用自动轻量级迁移策略进行最后几次应用程序更新。

少数用户报告说,在升级到我的应用程序的最新版本后,他们会丢失所有数据,并且每次尝试向/从CoreData写入/读取时,应用程序都会崩溃。我无法复制这个问题。

为什么自动迁移适用于大多数用户而非所有用户?


答案

在这个特定的例子中,问题最终是我不小心修改了一个xcdatamodel文件,该文件是几个版本而不知道它。当我发布新版本的应用程序时,有一些用户很长时间没有更新,因此他们拥有的“最新”版本的xcdatamodel与我意外更改的文件相同。当迁移试图在他们的设备上发生时,它会被阻塞,因为它想要基于迁移的数据模型文件的版本已被修改。

要解决此问题,我必须确定在旧的xcdatamodel文件中更改的内容,撤消更改并发布应用更新。一旦受此影响的用户更新到最新版本,迁移就会起作用。


其他信息:

他们似乎唯一共同点是他们都在运行iOS 6.1.3。我自己无法复制这个。我有一个运行iOS 6.1.3的设备,但无论我从我的应用程序的一个版本升级到下一个版本多少次,它都有效。我甚至试过跳过几个版本并从旧版本升级到最新版本并且工作正常。

为了它的价值,我正在使用this post中概述的自动迁移策略,它已经适用于最近的8或10个应用更新,包括添加到我的/从中移除的一些重要新内容CoreData模型。

0 个答案:

没有答案