【发布时间】:2012-05-10 06:22:12
【问题描述】:
我有一个基于 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 的路径。当我更新应用程序时,沙箱路径发生了变化,但在此文件中,之前的沙箱路径仍然可用,因此应用程序无法正常工作,因为之前的路径已从设备中删除。
这是 Apple 的问题还是可以由开发人员解决?
【问题讨论】:
-
您是在暗示 SQLite 在 iOS 5.1 中根本不起作用,或者它只是在迁移操作系统并安装了应用程序的手机上中断? SQLite 是否适用于 iOS 5.1 上的全新构建/新安装?
-
在 iOS 5.1 中,应用更新后应用无法连接到 SQLite。我从PhoneGap 找到了关于这个问题的一条信息。他们明确指出这是一个苹果问题,并且已经提出了一个错误。 phonegap.com/2012/04/18/…
标签: iphone ios ipad sqlite cordova