【问题标题】:Realm downgrade pod to previous version (Swift)领域将 pod 降级到以前的版本 (Swift)
【发布时间】:2020-07-02 04:30:47
【问题描述】:

在我们的项目中,我们已将 Realm pod 更新为 5.0.3 版本。我们已经开始观察 Realm 版本 4.3.2 中不存在的生产应用程序中的随机崩溃。因此,为了快速解决问题,我们决定再次将 pod 降级到 4.3.2。

降级后,Realm 出现迁移错误并出现以下错误

无法在路径 '/Users/Library/Developer/CoreSimulator/Devices/B18C551E-DC35-417B-BBA4-123865FEA7A1/data/Containers/Data/Application/8E9F1938-47D2-415F-97C0 打开领域-BDF933F0E964/Documents/default.realm':不支持的Realm文件格式版本(10)路径:异常回溯:

我们已经更新了 Realm 配置的迁移 ID,但问题仍然存在。

我们希望在不重新安装应用的情况下将 Realm 版本降级到 4.3.2 版本,这样生产用户就不会遇到任何问题。

任何帮助将不胜感激。

版本更新后在领域报告的一些问题

  1. https://github.com/realm/realm-cocoa/issues/6559
  2. https://github.com/realm/realm-cocoa/issues/6574
  3. https://github.com/realm/realm-cocoa/issues/6577

【问题讨论】:

    标签: ios swift realm realm-mobile-platform realm-migration


    【解决方案1】:

    随着 Realm 的发展,.realm 文件的文件格式会定期更改为使用旧版本 Realm 创建的.realm 文件需要在内部迁移到新的文件格式规范。当第一次在代码中创建 Realm 实例时,这会自动发生。

    这与Realm.Configuration对象中的schemaVersion属性不同,是Realm的内部实现细节,外部用户无法访问。

    不幸的是,据我所知,这种文件格式迁移仅以一种方式发生。所以如果用户的.realm文件已经升级到这个新格式,但是你降级了Realm的框架版本,这个文件是不能迁移回旧格式的。

    我强烈建议您尝试解决您在 5.0.3 上遇到的崩溃问题。

    但是,如果您希望继续使用 4.3.2,解决此问题的唯一方法是测试该异常,如果发生(例如,用户已经升级了文件),则使用 FileManager从磁盘物理删除数据库文件并从头开始。

    【讨论】:

    • 感谢@Tim 的回复。我们正在努力修复崩溃,但由于一些崩溃是零星的,这需要时间。所以寻找一个临时解决方案,这样用户就不会受到影响。
    【解决方案2】:

    收到来自 Realm 的响应,因此关闭问题,因为 v4* 无法降级。

    使用 v5.0.0 及更高版本创建的领域文件与低于 v5 的版本不兼容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-30
      • 2013-01-23
      • 1970-01-01
      • 1970-01-01
      • 2017-10-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多