我创建了一个应用程序,尝试在testflight上将其从版本54更新到55时崩溃。但是,如果我先删除该应用程序,然后安装版本55,它将运行平稳。因此我构建了另一个带有一些修复程序的文件,并尝试进行试飞,因此现在构建55-56更新。它运行顺利。
问题是当从54更新到55时,这里有人遇到同样的问题吗?
答案 0 :(得分:0)
通常,如果您在更新时崩溃,而不是在全新安装时崩溃,则意味着您有一些持久性数据与更新后的应用程序状态不兼容。
最常见的情况是:
基本上,任何持续存在的内容都可能在更新到新版本时导致崩溃或错误。但是因为您是从全新安装进行测试,所以在测试过程中始终会获得正确的格式。
如果发生崩溃,应该有一个非常清楚的异常,告诉您发生了什么,这可以帮助您找到问题的原因以及发生原因。从那里隔离要迁移的文件应该非常简单。
避免这种情况的好的解决方案是使用已安装的早期版本进行测试,并跟踪您进行的所有持久性修改。一旦确定了必须保留的内容,就决定更改它,就必须考虑到它。在访问文件之前,您可能必须编写一些代码来更新文件并检查其版本。因此,如果数据库版本1具有两个表和三个字段,则必须知道它,如果您对此不满意,则必须编写代码来更新数据库及其所有内容,然后只有每个人都可以期待拥有新的数据库。
这也是另一个好主意:在应用程序内部使用版本控制。如果您的应用是40版,但文件仍是34版格式,则必须使用该更新专用的代码将其更新为40版。
迁移并非易事。需要大量的测试和数据处理。我强烈建议您在投入生产之前使用单元测试进行此类工作。