我最近提交了我的应用程序的升级,其中包括轻量级核心数据迁移(包括现有表中的新字段和几个新表)。我遵循了有关此迁移的所有提示,包括我在此站点上找到的一些提示。
我在三种不同的设备上彻底测试了更新,一切正常!!!
但是,此更新正在使我所有的设备崩溃,并且可能在我的所有客户上崩溃。我无法解释为什么会这样。
你能帮我理解这场灾难吗?
我最近提交了我的应用程序的升级,其中包括轻量级核心数据迁移(包括现有表中的新字段和几个新表)。我遵循了有关此迁移的所有提示,包括我在此站点上找到的一些提示。
我在三种不同的设备上彻底测试了更新,一切正常!!!
但是,此更新正在使我所有的设备崩溃,并且可能在我的所有客户上崩溃。我无法解释为什么会这样。
你能帮我理解这场灾难吗?
要真正测试您的应用程序和迁移,您需要运行您的原始应用程序以根据原始数据模型创建数据存储。然后您需要运行您的新应用程序,打开使用原始应用程序生成的数据存储。这可能是一个真正的痛苦,并且在模拟器中更容易(至少最初是),因为您可以更好地控制文件系统并且可以交换保存的原始数据存储。在 iDevice 上,您需要为每个测试重新生成原始数据存储。
如果您在自己的开发设备上进行测试,那么您已经迁移了数据存储。您的测试设备是否有可能使用新的数据模型创建了他们的数据存储 - 并且从未实际执行过迁移?
我通常只在 beta 测试期间使用自动迁移,以便快速修改,除了我总是使用映射模型,以便您控制。
另一个问题是,如果您的模型在版本之间移动得足够远,从 v1-v2 自动迁移可能没问题,并且 v2-v3 可能没问题,但 v1-v3 可能过于激烈而无法推断。通过为他们制作地图,您可以保留对迁移的控制权。