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