我使用核心数据。在开发过程中,当我添加一个新的模型版本时,我需要在构建之前在 xcode 中清理我的项目,以便迁移到新的模型版本。
因此,当我的用户更新他们的应用程序时,他们的应用程序是否也在第一次启动之前“清理”了?还是我需要以其他方式强制迁移?
更准确地说:当我在 xcode 中构建我的新应用程序版本(带有新的核心数据模型版本)并在设备上运行它时,每当我尝试访问我的托管对象的新属性时它就会崩溃(因为它没有迁移sqlite DB 到新模型)。
是的,按照您理解“已清理”的方式,您的用户的应用程序被置于可执行状态。存储在 Core Data 持久存储中的所有数据都将迁移到新存储中,并且将像以前一样可用。
事实上,这就是苹果迁移计划的重点。正如 FR 所指出的,请阅读文档。