Я выпустил версию 21, в которой в сущности был добавлен новый атрибут. Затем снова в версии 22 я удалил этот новый атрибут из этого объекта. Я забыл создать новый xcdatamodel
для этого изменения (тот, который был в версии 22). Я протестировал приложение, и оно работало нормально.
Проблема в том, что для некоторых пользователей происходит сбой при попытке кода получить доступ к контейнеру постоянства (я использую библиотеку INSPersistentContainer
). Но это не приводит к локальному развитию.
lazy var persistentContainer: INSPersistentContainer = {
let stack = INSDataStackContainer(name: "MyDb")
stack.persistentStoreDescriptions.first?.shouldMigrateStoreAutomatically = true
stack.persistentStoreDescriptions.first?.shouldInferMappingModelAutomatically = true
stack.loadPersistentStores(completionHandler: { desc, error in
if error != nil {
print(error as Any)
abort()
}
})
return stack
}()
По логике это должно произойти сбой для всех, потому что я не создал новый xcdatamodel
для новой версии, но он падает только для нескольких пользователей.
Когда я использовал sqlite db browser
для просмотра данных приложения на моем мобильном телефоне, атрибут, который был удален в версии 22, не существует. Так что iOS каким-то образом осуществила миграцию.
Я хочу выпустить новую версию, у которой не должно быть этого удаленного атрибута для всех, кто обновляется до этой версии, независимо от того, какую версию они обновляют. Как я могу убедиться в этом?