Iphone 在iOS5.1中更新应用程序后,基于PhoneGap的应用程序不工作

Iphone 在iOS5.1中更新应用程序后,基于PhoneGap的应用程序不工作,iphone,ios,ipad,sqlite,cordova,Iphone,Ios,Ipad,Sqlite,Cordova,我有一个基于PhoneGap的iOS应用程序,它使用SQLite DB进行离线存储。在iOS 5.1中更新应用程序后,该应用程序不工作。同样的应用程序在5.1以下的版本中运行良好 我探索了一些东西,我的分析是 当我们安装一个应用程序时,iOS会为此创建一个单独的沙箱,所有与该应用程序相关的数据都会进入该沙箱 在iOS5.1中,当我们更新一个应用程序时,会创建一个新的沙盒,并将旧沙盒中的内容移动到此处 对于iOS 5.1中的WebSQL,即PhoneGap的SQLite,数据库存储在缓存文件夹(易

我有一个基于PhoneGap的iOS应用程序,它使用SQLite DB进行离线存储。在iOS 5.1中更新应用程序后,该应用程序不工作。同样的应用程序在5.1以下的版本中运行良好

我探索了一些东西,我的分析是

  • 当我们安装一个应用程序时,iOS会为此创建一个单独的沙箱,所有与该应用程序相关的数据都会进入该沙箱
  • 在iOS5.1中,当我们更新一个应用程序时,会创建一个新的沙盒,并将旧沙盒中的内容移动到此处
  • 对于iOS 5.1中的WebSQL,即PhoneGap的SQLite,数据库存储在缓存文件夹(易失性存储)下。但在以前版本的iOS中,SQLite DB存储在沙盒中的Documents文件夹下,该文件夹是持久存储
  • 真正的问题是缓存/首选项中有一个名为“.preferences”的文件,其路径为websql DB。当我更新应用程序时,沙盒路径会更改,但在此文件中,上一个沙盒路径仍然可用,因此应用程序无法工作,因为上一个路径已从设备中删除

  • 这是苹果的问题还是开发者可以解决的问题?

    我已经通过

    iOS引用的查找WEB DB(SQLite)和本地存储的路径存储在NSUserDefaults中。 因此,当我每次启动应用程序时,我都会检查路径信息,确保它与新的沙盒路径匹配,如果不匹配,我会设置该键的值,现在应用程序工作正常

    引用SQLite路径的NSUserDefault键是WebDatabaseDirectory


    如果Apple在下一版本中发布了此问题的修复程序,则不需要此代码。

    我已通过

    iOS引用的查找WEB DB(SQLite)和本地存储的路径存储在NSUserDefaults中。 因此,当我每次启动应用程序时,我都会检查路径信息,确保它与新的沙盒路径匹配,如果不匹配,我会设置该键的值,现在应用程序工作正常

    引用SQLite路径的NSUserDefault键是WebDatabaseDirectory


    如果苹果在下一版本中发布了此问题的修复程序,则不需要此代码。

    尝试使用cordova-1.6.0或更高版本


    当我改为cordova-1.6.0时,我的问题已经解决。

    尝试使用cordova-1.6.0或更高版本


    当我改为cordova-1.6.0时,我的问题得到了解决。

    你是说SQLite在iOS 5.1中根本不起作用,还是说它只是在使用先前安装的应用迁移操作系统的手机上坏了?iOS 5.1上的新版本/新安装是否适用于SQLite?在iOS 5.1中,应用程序更新后,应用程序无法连接到SQLite。我从PhoneGap找到了一条关于这个问题的信息。他们明确表示这是苹果公司的问题,并且已经向阿布格提出了这个问题。你是说SQLite在iOS 5.1中根本不起作用,还是说它只是在以前安装了应用程序的手机上坏掉了?iOS 5.1上的新版本/新安装是否适用于SQLite?在iOS 5.1中,应用程序更新后,应用程序无法连接到SQLite。我从PhoneGap找到了一条关于这个问题的信息。他们明确表示这是苹果公司的问题,并且已经向阿布格提出了这个问题。我不使用PhoneGap,但我必须说这是一个很好的解决方法。我不使用PhoneGap,但我必须说这是一个很好的解决方法。