在迁移到新的CoreData机型时,我面临着一些设备上发生的奇怪的崩溃,据Firebase和Xcode的崩溃历史报告。唯一需要更改和添加3个新属性的是删除一个表/对象中的几个属性。我已经重新生成了类,并升级了模型版本,因为它不需要进行轻量级迁移。
我得到的只是:
crash_info_entry_0
Fatal error: Error migrating store: Error Domain=NSCocoaErrorDomain Code=256
"The file "<FileName>.sqlite" couldn't be opened." UserInfo={NSFilePath=/var/mobile/Containers/Data/Application/45859729-F07E-4006-8742-3B53DF6D1CE9/Documents/<FileName>.sqlite, NSSQLiteErrorDomain=23}: file /ProjectName/Repo/Models/Storage/CoreData/CoreDataEngine.swift, line 137我使用的是Swift 4.2。
发布于 2019-01-03 01:51:29
SQLite错误23是一个authorization error。这可能意味着你在应用程序的功能中开启了数据保护(或者你在加载持久存储时使用了NSPersistentStoreFileProtectionKey ),并且当文件不可访问时(例如,当屏幕被锁定时),你试图访问持久存储。
如果你能关闭数据保护,问题就解决了。如果你需要数据保护,你需要在你的应用委派中使用data protection related methods来检测你的应用何时可以安全地访问文件。
https://stackoverflow.com/questions/54008797
复制相似问题