1

私はアプリに取り組んでおり、SQLite 3 を使用してデータをローカルに保存しています。今後、同じアプリのバージョンを更新する予定です。新しい IPA ファイルをダウンロードしてインストールするだけで、新しい IPA ファイルを削除して更新する必要があります。

しかし、ここで問題が発生します。クライアントは、Web サーバーを使用せずに、以前のバージョンでローカルに保存されたデータを新しいバージョンに置き換えることを望んでいます。

私はいくつかの リンクをサーフィンしましたが、すべての結果が否定的な反応になりましたが、アプリを削除してもデータベースに影響を与えず、新しいバージョンは、同じデータベースからデータを取得できます。それとも他の方法ですか?事前にご回答いただきありがとうございます。

4

4 に答える 4

2

iOS データ ストレージ ガイドライン。

iCloud には、Wi-Fi 経由でユーザーの iOS デバイスを毎日自動的にバックアップするバックアップが含まれています。アプリケーション バンドル自体、キャッシュ ディレクトリ、および一時ディレクトリを除いて、アプリのホーム ディレクトリ内のすべてがバックアップされます。購入した音楽、アプリ、書籍、カメラ ロール、デバイスの設定、ホーム画面とアプリの構成、メッセージと着信音もバックアップされます。バックアップはワイヤレスで行われ、ユーザーごとに iCloud に保存されるため、アプリ用に保存するデータの量を最小限に抑えることをお勧めします。ファイルが大きいと、バックアップの実行にかかる時間が長くなり、ユーザーの利用可能な iCloud ストレージをより多く消費します。

バックアップが可能な限り効率的になるように、次のガイドラインに従ってアプリのデータを保存してください。

  1. /Documents ディレクトリに保存する必要があるのは、ユーザーが生成した、またはアプリケーションで再作成できないドキュメントやその他のデータのみであり、iCloud によって自動的にバックアップされます。

  2. 再ダウンロードまたは再生成できるデータは、/Library/Caches ディレクトリに保存する必要があります。Caches ディレクトリに配置する必要があるファイルの例には、データベース キャッシュ ファイルやダウンロード可能なコンテンツ (雑誌、新聞、地図アプリケーションで使用されるものなど) が含まれます。

  3. 一時的にのみ使用されるデータは、/tmp ディレクトリに格納する必要があります。これらのファイルは iCloud にバックアップされませんが、ユーザーのデバイスのスペースを消費し続けないように、作業が終了したらこれらのファイルを削除することを忘れないでください。

  4. ストレージが少ない状況でも、デバイスに残す必要があるファイルを指定するには、「バックアップしない」属性を使用します。この属性は、再作成できるが、アプリが適切に機能するために、または顧客がオフラインで使用できることを期待しているために、ストレージが少ない状況でも保持する必要があるデータで使用します。この属性は、Documents ディレクトリを含め、ファイルがどのディレクトリにあるかに関係なく、マークされたファイルに対して機能します。これらのファイルは削除されず、ユーザーの iCloud または iTunes バックアップには含まれません。これらのファイルはデバイス上のストレージ領域を使用するため、アプリはこれらのファイルを定期的に監視および削除する必要があります。もっと詳しく知る

詳細については、iOS アプリ プログラミング ガイドを参照してください。

于 2012-05-08T06:42:40.627 に答える
2

アプリがアプリストアを介して更新されても、データベース内のすべてのコンテンツがそこに残るため、データベースをDocumentsフォルダーに保存する必要があります(アプリを削除すると、これも削除されます..これに注意してください)

Documents名前の付いたフォルダー内に別のフォルダーを作成し、そのDatabase中にファイルを保存できます..このようなパスを作成できます..

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; // Get documents folder
NSString *dataPath = [documentsDirectory stringByAppendingPathComponent:@"Database"];

編集:

アプリの削除後も保持したいので、アプリのサンドボックス機能により、デバイス上でそれを行うことはできないと思いますが、まだ別のオプションがあります..

このデータベースを個人用サーバーにバックアップできます。アプリがインストールされるたびに、その特定のユーザーのデータベースが存在するかどうかをサーバーに照会する必要があります。それが存在する場合は、それをダウンロードしてドキュメント ディレクトリに保存できます。それ以外の場合は、彼に新しいデータベースを提供します。このバックアップを時々実行するか、ユーザー自身に同期オプションを提供できます。これが役立つことを願っています。

于 2012-05-08T06:11:38.217 に答える