組み込みのSQLiteデータベースを使用するiPhoneアプリを開発しています。 sqlite3
コマンドラインツールを使用してデータベースを表示して開こうとしているため、任意のSQLを実行できます。
シミュレータでアプリを実行すると、アプリが作成する.sqlite
ファイルは~/Library/Application Support/iPhone Simulator/User/Applications/
にあります。
物理的なiPhoneでそのファイルを表示するにはどうすればよいですか?
Xcodeでwindow-> organizerを選択し、電話のアプリケーションセクションでアプリケーションの横のノードを展開します。アプリケーションデータの横にある黒い下向きの矢印を選択し、デスクトップ上の任意の場所にファイルを保存します。あなたのsqliteデータベースはどこかにあるはずです。
あなたが終わったら電話でそれを取り戻す方法については私には手掛かりがありません。
Xcode 6.0.1の手順
XCode 4では、推奨されるラウンジと同じことを行います。これにより、アプリのファイル構造全体が目的の場所に保存されます。 .sqliteに保存されている.xcappdataファイルの名前を変更して、ダブルクリックで開くことができるようにします。そうすると、デバイスからファイルを見つけることができます。
これはあなたのiPhoneを脱獄した場合に機能します..私がかなり長い間開発に使用していて問題がなかったので、誰もがなぜ彼らの電話を脱獄することに問題があるのか分かりません、またそれはsqliteでは珍しいことではありません 別の方法で実行 デバイスとシミュレーターの比較:
which sqlite3
確実にインストールしてくださいdbの場所を参照します。コード内のブレークポイントは、それがどこにあるかを通知するはずです。私のコードでは、次のようになります。
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ステートメントを実行することができます..何もコピーすることなく。
あなたの質問は少し曖昧なままです。 「見る」とはどういう意味ですか? SQLiteデータベースを作成しますか?どうやって?シミュレータのファイルシステム領域に手動で配置しましたか?あなたはおそらくiPhoneでそれを行う方法を尋ねていますか?
最も簡単な方法は、sqlite3コマンドラインツールを使用して空のデータベースを事前に作成し、それをアプリケーションのリソースとして使用して、それをアプリケーションサンドボックスのドキュメントフォルダーにコピーすることです。 NSBundleのpathForResource:ofType:メソッドを介してリソースフォルダーへのパスを取得し、NSUserDomainMaskのNSDocumentsDirectoryフォルダーのNSSearchPathForDirectoriesInDomains()を介してDocumentsフォルダーへのパスを取得し、NSFileManagerのメソッドを介してファイルをコピーします。
それ以外の場合は、SQLiteの関数を使用して、スキーマを定義する適切なSQLコマンドを提供することにより、新しいデータベースを最初から作成できます。
シミュレータで行うのとまったく同じ方法で。デバイスとシミュレーターの間の(重要な)違いはほとんどなく、ファイルアクセスとライブラリーのロードは大部分がそれらの一部ではありません。
コンテナーのダウンロード方法は、私が最も優れている方法です。ただし、メールで送信したり、アプリ内から添付しようとしたりすると、送信されるファイルが空になる場合があることに注意する必要があります。
はるかに簡単な方法は、iExplorerを使用してアプリからファイルをダウンロードすることです。次に SQLite Professional読み取り専用 を使用してファイルを読み取ります。リアルタイムではないと思っていても、少なくとも無料です。 :-)