Ios 仅在设备上发生Ream快速迁移崩溃

Ios 仅在设备上发生Ream快速迁移崩溃,ios,swift,realm,realm-migration,Ios,Swift,Realm,Realm Migration,我必须通过在其中一个对象上添加一个字段来更新我的领域模式 以下是迁移代码: func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { let config = Realm.Configuration( schemaVersion: 4

我必须通过在其中一个对象上添加一个字段来更新我的领域模式

以下是迁移代码:

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {

    let config = Realm.Configuration(
        schemaVersion: 4,

        migrationBlock: { migration, oldSchemaVersion in
            if (oldSchemaVersion < 4) {
                print("Updating Realm schema...")
                // Nothing to do!
            }
    })
    Realm.Configuration.defaultConfiguration = config
    let realm = try! Realm()

    // ... rest of code
}
在模拟器上运行时,它是正常的 从xCode在设备上运行时没有问题 但如果我从TestFairy或TestFlight安装该应用程序,该应用程序会在启动时崩溃。当我移除迁移时,一切都很好,因此迁移导致了问题

表示崩溃报告没有帮助,崩溃处于didFinishLaunchingWithOptions的开始

尝试了各种导出选项更改位代码。。。但同样的结果


当未从xCode安装更新的应用程序时,您是否看到迁移失败的原因?

每次将应用程序分发到试飞或AppStore时

您应该向方案中添加一个,例如,如果您的应用程序是最近生成的 在测试飞行中,架构号为4。如果您对领域类有任何更改,则新版本应为5。但是,如果您在本地尝试进行测试,则只需删除应用程序并通过Xcode重新安装即可


请看下面的图片

在设备上运行时,尝试向schemaVersion 5添加1,尝试增加版本。可能在一个设备上已经超过4个。不幸的是,这不是原因。应用程序已在架构版本为0的设备上。通过xCode更新是可以的;从TestFlight崩溃中更新它。发送到TestFlight或TestFairy的版本与从xCode工作的版本相同。唯一的区别是我存档并上传了它。用更高的方案编号存档新方案,然后重试:我以前的方案编号是0,我可以看到它,因为我在日志上打印了它。不管怎样,我按照你的建议将新方案编号从4改为5,并且不再出现崩溃。这很奇怪,但是问题已经解决了,我非常感谢你坚持这个想法:没有问题,我一直在那里,这就是为什么