38

組み込みのSQLiteデータベースを使用するiPhoneアプリを開発しています。コマンドラインツールを使用してデータベースを表示および開こうとしているsqlite3ので、データベースに対して任意のSQLを実行できます。

シミュレーターでアプリを実行すると、アプリが.sqlite作成するファイルはにあります~/Library/Application Support/iPhone Simulator/User/Applications/

物理的なiPhoneでそのファイルを確認するにはどうすればよいですか?

4

8 に答える 8

80

Xcode 6.0.1 の手順

  1. Xcode > 開く > YourProject
  2. Xcode > 製品 > 実行
  3. Xcode > ウィンドウ > デバイス
  4. (列 1 - 選択) デバイス > YourDeviceName
  5. (列 2 - 選択) インストール済みアプリ > YourAppName
  6. (列 2 - 選択) [インストール済みアプリ] リストの下の Cog
  7. (ポップアップ - 選択) コンテナのダウンロード...
  8. 場所に保存
  9. 「YourAppName.xcappdata」を右クリックします
  10. 「パッケージの内容を表示」を選択します
  11. AppData > ドキュメント > YourDatabase.sqlite

ここに画像の説明を入力

于 2014-09-23T00:53:59.520 に答える
44

Xcodeで[ウィンドウ]->[オーガナイザー]を選択し、電話の[アプリケーション]セクションでアプリケーションの横にあるノードを展開します。アプリケーションデータの横にある黒い下向き矢印を選択し、デスクトップ上の任意の場所にファイルを保存します。あなたのsqliteデータベースはどこかにあるはずです。

あなたが終わったら電話でそれを取り戻す方法については、私には手がかりがありません。

于 2008-10-01T22:16:03.627 に答える
2

XCode 4 では、Lounges が提案したのと同じことを行います。これにより、アプリのファイル構造全体が選択した場所に保存されます。.sqlite に保存されている .xcappdata ファイルの名前を変更して、ダブルクリックで開くことができるようにすると、デバイスからファイルを見つけることができます。

于 2011-12-26T16:45:05.763 に答える
1

あなたの質問は少し曖昧なままです。どういう意味で「見る」?SQLiteデータベースを作成しますか?どのように?シミュレータのファイルシステム領域に手動で配置しましたか?あなたはおそらくiPhoneでそれを行う方法を尋ねていますか?

最も簡単な方法は、sqlite3コマンドラインツールを使用して空のデータベースを事前に作成し、それをアプリケーションのリソースとして使用してから、アプリケーションのサンドボックスのドキュメントフォルダーにコピーすることです。NSBundleのpathForResource:ofType:メソッドを介してリソースフォルダーへのパスを取得し、NSUserDomainMaskのNSDocumentsDirectoryフォルダーのNSSearchPathForDirectoriesInDomains()を介してDocumentsフォルダーへのパスを取得し、NSFileManagerのメソッドを介してファイルをコピーできます。

それ以外の場合は、SQLiteの関数を使用して、スキーマを定義する適切なSQLコマンドを指定することにより、新しいデータベースを最初から作成できます。

于 2008-10-01T22:16:37.387 に答える
1

シミュレータで行うのとまったく同じ方法です。デバイスとシミュレータの間に(重要な)違いはほとんどなく、ファイルアクセスとライブラリのロードはほとんどの場合それらの一部ではありません。

于 2008-10-01T21:43:39.947 に答える
1

これは、iPhone をジェイルブレイクする場合に機能します。かなり長い間開発に使用して問題が見つからなかったため、携帯電話のジェイルブレイクに問題が発生する理由がわかりません。また、sqlite では珍しいことではありません。デバイスとシミュレーターで異なるパフォーマンスを発揮するには:

  1. 携帯電話を刑務所で壊す (ウェブ上にチュートリアルがあります)
  2. cydia ユーザー レベルを開発者に設定します。
  3. 携帯電話に sqlite3 をインストールします。[cydia] > [管理] > [ソース] > [cydia/telesphoreo] > [sqlite3] に移動します。
  4. iphone トンネルルート ssh パスワード: "alpine"を使用して電話に ssh します。
  5. which sqlite3インストールされていることを確認するために入力してください
  6. あなたのデータベースの場所を参照してください..コードのブレークポイントは、それがどこにあるかを教えてくれるはずです..私のコードでは、次のようになります

    NSArray *paths = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *documentsDirectory = [paths objectAtIndex: 0]; 
    NSString *pathName = [documentsDirectory stringByAppendingPathComponent:filename];
    return pathName;
    

    これをシミュレーターで実行すると、次のような場所が得られることに注意してください。 /Users/admin/Library/Application Support/iPhone Simulator/6.0/Applications/42302574-7722-48C1-BE00-91800443DA7C/Documents/email-524200.edb

デバイスでは、次のようになります。 /var/mobile/Applications/FB73857F-A822-497D-A4B8-FBFB269A8699/Documents/email-523600.edb

次に、入力するだけsqlite3 %dbname%で、電話で直接SQLステートメントを実行できます..コピーする必要はありません。

于 2013-01-23T04:54:32.040 に答える
0

ダウンロード コンテナーの方法は、私が最も優れていると判断した方法です。ただし、メールで送信したり、アプリ内から添付したりすると、送信されたファイルが空になる場合があることに注意する必要があります。

于 2016-04-20T21:29:36.840 に答える
0

これを行う最も簡単な方法は、iExplorer を使用してアプリからファイルをダウンロードすることです。次に、SQLite Professional 読み取り専用を使用してファイルを読み取ります。リアルタイムではないと思っていましたが、少なくとも無料です。:-)

于 2013-07-02T00:56:23.680 に答える