【发布时间】:2019-02-07 14:53:01
【问题描述】:
我必须通过在其中一个对象上添加一个字段来更新我的领域架构。
这里是迁移代码:
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
}
- 在模拟器上运行就OK了
- 从 xCode 在设备上运行时没问题
但如果我从 TestFairy 或 TestFlight 安装应用程序,应用程序会在启动时崩溃。当我删除迁移时,一切都很好,所以迁移会导致问题。
符号化崩溃报告没有帮助,崩溃发生在 didFinishLaunchingWithOptions 的开始。
尝试了各种导出选项更改(位码,...),但结果相同。
如果没有从 xCode 安装更新的应用程序,您是否看到迁移失败的任何原因?
【问题讨论】:
-
尝试将 1 添加到 schemaVersion (5)
-
当您在设备上运行时尝试增加版本。也许在已经超过 4 个的设备上。
-
不幸的是,这不是原因。该应用程序已经在架构版本 0 的设备上。通过 xCode 更新它是可以的;从 TestFlight 崩溃更新它。发送到 TestFlight 或 TestFairy 的版本与使用 xCode 的版本相同。唯一的区别是我把它存档并上传了。
-
用更高的方案号归档新的并尝试:)
标签: ios swift realm realm-migration