我正在开发使用CoreData的iOS应用程序。
我已经从用户那里获得了包含以下隐藏文件的应用程序数据。
什么是.appname.sqlite.migrationdestination_xxxx文件?它会导致sql腐败错误?
- 文档/ .appname.sqlite.migrationdestination_xxxx(549MB)
- 文档/ .appname.sqlite.migrationdestination_xxxx-SHM(721KB)
- 文档/ .appname.sqlite.migrationdestination_xxxx-沃尔玛(0Byte)
并且在相同的Documents文件夹中有appname.sqlite,appname.sqlite-wal和appname.sqlite-shm。
appname.sqlite是应用程序的主要sql文件。而-wal,-shm似乎是由iOS自动生成的。
(我从What are the .db-shm and .db-wal extensions in Sqlite databases?学)我觉得migrationdestination文件仅仅是进行数据迁移。
可能在用户设备未能迁移时仍然存在。 (例如,当我的应用长时间处于后台时iOS终止我的应用)。
顺便说一下,一些使用我的应用的用户遇到了这个麻烦。
Mar 10 13:33:24 xxxx-xx-iPhone XXXXXXXX[5416] : CoreData: error: (11) Fatal error. The database at /var/mobile/Applications/95D2823D-37E4-4596-9507-B58571D32EBB/Documents/appname.sqlite is corrupted. SQLite error code:11, 'database disk image is malformed'
我发现这个提示。
Core Data store corruption
一个答案说-wal和-shm导致此错误。所以我删除它。
但是,用户仍会得到相同的错误。所以我认为迁移目的地可能会导致这个错误。
我会对它进行测试以清除明天。然后我把结果报告给这里。
那么有没有人有同样的麻烦,建议,答案?
感谢您阅读我的问题。
我不会变bad8f00d。显示加载窗口。如果用户在前台打开应用程序,则没有关系。但是,如果用户将应用程序发送到后台,iOS将在30秒后终止应用程序。顺便说一句,我有这个解决方案。所以我会编辑我的问题。 – dosuken123