而试图在CoreData添加持久性存储不一致崩溃

问题描述 投票:0回答:1

我面临着一个奇怪的崩溃,在部分装置,由火力地堡和Xcode的报告发生崩溃的历史,而迁移到新CoreData模型。唯一Chan和加入3需要做新propertiesge是删除几个属性的一个表/对象。我已经再生类和升级的模型版本,它不需要,但重量轻的迁移。

和所有我得到的是:

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

我使用的雨燕4.2。

ios core-data core-data-migration
1个回答
0
投票

SQLite的错误23是authorization error。这可能意味着你的数据保护应用程式的功能开启(否则你装载持久性存储在使用NSPersistentStoreFileProtectionKey),而你试图访问持久性存储文件的时候就无法访问(例如,当屏幕被锁住了)。

如果你可以关闭数据保护,这将解决这个问题。如果你需要数据保护,需要使用data protection related methods在你的应用程序代理,以检测当你的应用程序可以安全地访问文件。

© www.soinside.com 2019 - 2024. All rights reserved.