2012-04-30 6 views
1

私は、オフラインストレージとしてSQLite DBを使用するPhoneGapベースのiOSアプリケーションを使用しています。 iOS 5.1でのアプリのアップデート後にアプリが動作しません。同じアプリは5.1より下のバージョンでうまくいきます。iOS5.1でApp更新後にPhoneGapベースのアプリケーションが動作しない

私はいくつかのことを探求し、私の分析では、我々はiOSのは、そのための別のサンドボックスを作成し、そのアプリに関連するすべてのデータがそれにして行くのアプリをインストールすると

  1. です。
  2. iOS5.1でアプリを更新すると、新しいサンドボックスが作成され、古いサンドボックスのコンテンツがここに移動されます。
  3. iOS 5.1のWebGate(SQLite for PhoneGap)の場合、DBはキャッシュフォルダ(揮発性ストレージ)に格納されます。しかし、以前のバージョンのiOSでは、SQLite DBは、永続ストレージであるサンドボックス内のDocumentsフォルダに格納されていました。
  4. 本当の問題は、websql DBのパスを持つキャッシュ/プリファレンスに ".preferences"というファイルがあることです。私はアプリの更新を行うとサンドボックスのパスは変更されますが、このファイルでは以前のサンドボックスはパスが使用可能なため、アプリケーションは以前のパスが既にデバイスから削除されているため動作しません。

これはAppleの問題ですか、それとも開発者が解決できるのですか?私は

により問題を修正し

+0

iOS 5.1ではSQLiteがまったく動作しない、または以前にインストールされたアプリを使用してOSを移行する電話機が壊れてしまうことをお勧めしますか? SQLiteはiOS 5.1の新しくビルド/新規インストールで動作しますか? iOS 5.1の – Purpletoucan

+0

、アプリのアップデート後アプリがSQLiteに接続できません。私はPhoneGapからこの問題の情報を見つけました。彼らはこれをAppleの問題として明確に述べており、すでにabugがこれをregdしています。 http://phonegap.com/2012/04/18/ios-5-1-and-the-embedded-uiwebview-with-cordova/ – Defendore

答えて

1

WEB DB(SQLiteの)ローカルストレージを検索するためのiOSで参照パスをNSUserDefaultsに格納されています。 だから私は、私がパス情報をチェックし、私はそのキーの値を設定していない場合は、新しいサンドボックスのパスと一致することを確認するたびにアプリを起動し、今アプリは正常に動作します。

SQLiteパスと呼ばれるNSUserDefaultキーはWebDatabaseDirectoryです。

Appleが次のリリースでこの問題の修正をリリースした場合、このコードは必須ではありません。

+0

私はPhoneGapを使用しませんが、それは素晴らしい回避策だと言わなければなりません。 –

0

これはcordova-1.6.0以上を使用してください。

私がcordova-1.6.0に変更したとき、私の問題は解決しました。

関連する問題