在新版本的应用程序中替换核心数据模型,无需以前的源代码
Posted
技术标签:
【中文标题】在新版本的应用程序中替换核心数据模型,无需以前的源代码【英文标题】:Replace core data model in new version of app without having previous source code 【发布时间】:2016-08-31 15:47:11 【问题描述】:您好,我遇到了核心数据迁移问题。我开发了一个应用程序,它是 Appstore 中现有应用程序的新版本。但是我没有以前版本的源代码,也不知道旧版本是否使用了核心数据。那么如何在没有任何崩溃的情况下将我的应用程序(具有核心数据)更新到 Appstore。请问有什么快速的解决方法吗?
【问题讨论】:
如果您不知道旧版本是否使用Core Data,您希望如何迁移旧数据?还是您只是丢弃/忽略任何旧数据? 我想忽略我的旧数据(如果存在)。 【参考方案1】:由于您在评论中提到要忽略旧数据,因此您无需进行任何类型的迁移。模型迁移是关于更新现有数据以使用更新的数据模型。唯一的危险是如果旧应用程序使用 Core Data而您的新应用程序尝试使用具有相同文件名的持久存储文件。然后您的应用会尝试加载旧数据,因为它会找到具有正确名称的文件。
最简单的测试方法是:
-
安装现有应用(从应用商店)
使用此应用,直到您确定它可以节省一些数据
从 Xcode 安装新版本。由于是升级版,所以会覆盖应用商店的副本。
到那时,您将确切知道升级时会发生什么。如果您遇到与 Core Data 相关的崩溃,请更改您的 Core Data 设置以使用不同的文件名。然后从您的 ios 设备中删除该应用程序并从上面重复测试。
【讨论】:
如有必要,最好有在首次启动时删除现有数据库文件的代码。不要在沙箱中留下垃圾。 如果您知道这些文件的名称。听起来好像不是这样。 您可以查看沙箱。 @Avi 如果你觉得你有更好的答案,请不要犹豫,发布一个。以上是关于在新版本的应用程序中替换核心数据模型,无需以前的源代码的主要内容,如果未能解决你的问题,请参考以下文章
如果我上传新版本的应用程序,TestFlight 会删除我以前的构建吗?
安卓手机上的软件,如果把新版本的替换成旧版本的,那么数据还会不会保留?