我有一个基于 PhoneGap 的 iOS 应用程序,它使用 SQLite DB 进行离线存储。在 iOS 5.1 中更新应用程序后,该应用程序无法运行。相同的应用程序在低于 5.1 的版本中运行良好。
我探索了一些东西,我的分析是
- 当我们安装一个应用程序时,iOS 会为此创建一个单独的沙箱,并且与该应用程序相关的所有数据都会进入其中。
- 在 iOS5.1 中,当我们更新应用程序时,会创建新沙箱,并将旧沙箱中的内容移到此处。
- 对于 WebSQL,即 iOS 5.1 中 PhoneGap 的 SQLite,数据库存储在缓存文件夹(易失性存储)下。但在以前的 iOS 版本中,SQLite DB 存储在 Sandbox 中的 Documents 文件夹下,该文件夹是持久存储。
- 真正的问题是缓存/首选项中有一个名为“.preferences”的文件,该文件具有 websql DB 的路径。当我更新应用程序时,沙箱路径发生更改,但在此文件中,以前的沙箱路径仍然可用,因此应用程序无法正常工作,因为以前的路径已从设备中删除。
这是苹果的问题还是可以由开发人员解决?