アプリデータの保存に使用しているSQLiteDBがあり、その内部を調べて問題をデバッグすることができますが、iPhoneシミュレーターは通常、データをどこに保存しますか?
21 に答える
Xcode6 + /iOS8+の場合
〜/ Library / Developer / CoreSimulator / Devices / [DeviceID] / data / Containers / Data / Application / [AppID] /
受け入れられた答えはSDK3.2に対して正しいです-SDK4は、そのパスの/ Userフォルダーを、シミュレートできるレガシーiPhone OS / iOSバージョンごとの番号に置き換えるため、パスは次のようになります。
〜/ライブラリ/アプリケーションサポート/iPhoneシミュレーター/[OSバージョン]/アプリケーション/[appGUID] /
以前のSDKを一緒にインストールしている場合、その3.1.xシミュレーターはデータを次の場所に保存し続けます。
〜/ライブラリ/アプリケーションサポート/iPhoneシミュレーター/ユーザー/アプリケーション/[appGUID] /
ターミナルなしでアプリデータがどこにあるかを見つける別の(より速い?)方法があります:
- シミュレーターでアプリを起動します
- アクティビティモニターを開く
- [CPU]タブでアプリの名前を見つけます
- それをダブルクリックして「ファイルとポートを開く」を開きます
これまでで最も簡単な方法。
どこかでブレークポイントをキャッチします。(またはNajdanTomićがコメントで述べたように、プログラムの実行を一時停止します(デバッグ領域で一時停止をタップします))
コンソールウィンドウ
po NSHomeDirectory()
に入る
結果:
(lldb)po NSHomeDirectory() / Users / username / Library / Developer / CoreSimulator / Devices / 4734F8C7-B90F-4566-8E89-5060505E387F / data / Containers / Data / Application / 395818BB-6D0F-499F-AAFE-068A783D9753
それを見つけた:
~/Library/Application Support/iPhone Simulator/User/
iOS 8〜/ Library / Developer / CoreSimulator / Devices / [Device ID] / data / Applications / [appGUID] / Documents /
ライオンにUsers/[username]/Library
は隠されています。
Finderで簡単に表示するには、画面上部の[移動]メニューをクリックし、[Alt]キーを押しながら[ライブラリ]を表示します。
「ライブラリ」をクリックすると、以前に非表示にしたライブラリフォルダが表示されます。
以前のアドバイス:
使用する
chflags nohidden /users/[username]/library
ターミナルでフォルダを表示します。
シミュレーターが実行されている場合は、任意のアプリのコンテナーへのパスを取得できます。
xcrun simctl get_app_container booted <app bundle identifier>
出力例:
$ xcrun simctl get_app_container booted com.example.app
/Users/jappleseed/Library/Developer/CoreSimulator/Devices/7FB6CB8F-63CB-4F27-BDAB-884814DA6FE0/data/Containers/Bundle/Application/466AE987-76BC-47CF-A207-266E65E7DE0A/example.app
「起動済み」はsimctl
、デバイスのUDIDが必要な場所であればどこでもほとんどのコマンドに置き換えることができます。
を使用してデバイスのリストを表示し、を使用xcrun simctl list
して特定のコマンドのヘルプを取得できますxcrun simctl help
。
更新:Xcode 8.3での一般的なリクエストにより、「app」、「data」、「groups」、またはアプリグループ識別子を追加して、必要なコンテナーの種類を指定できるようになりました。
データコンテナを取得するには:
$ xcrun simctl get_app_container booted com.example.app data
Xcode 5では、以下のコードを使用できます。
#import <Foundation/NSFileManager.h>
と:
NSString *homeDir = NSHomeDirectory();
NSLog(@"%@",homeDir);
結果は次のようになります。
"/Users/<your user name>/Library/Application Support/iPhone Simulator/7.1/Applications/hhhhhhhh-hhhh-hhhh-hhhh-hhhhhhhhhhhh"
hhhhhhhh-hhhh-hhhh-hhhh-hhhhhhhhhhhh
iOSアプリを識別する16進文字列はどこにありますか。
アプリがシミュレーター内のどこにあるかを見つける最も簡単な方法の1つ。ユーザー「NSTemporaryDirectory()」
手順-
- アプリ内の任意の場所にブレークポイントを適用し、アプリを実行します。
アプリがブレークポイントで停止したら、Xcodeコンソールで次のコマンドを入力します。
po NSTemporaryDirectory()
これで、一時フォルダまでの正確なパスが得られました。戻って、アプリに関連するすべてのフォルダーを表示できます。
これもお役に立てば幸いです。ハッピーコーディング:)
Xcode 6.0は、少なくともiOS 8シミュレーターでは、この場所をもう一度移動したようです。
〜/ Library / Developer / CoreSimulator / Devices / [DeviceID] / data / Containers / Data / Application / [AppID]
単にこれを行います:
NSString *docDirPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)objectAtIndex:0];
NSLog(@"%@", docDirPath);
そして、あなたはこのような何かを得るでしょう:
/ Users / admin / Library / Developer / CoreSimulator / Devices / 58B5B431-D2BB-46F1-AFF3-DFC789D189E8 / data / Containers / Data / Application / 6F3B985F-351E-468F-9CFD-BCBE217A25FB / Documents
そこに移動すると、XCodeのバージョンに関係なく、アプリのドキュメントフォルダーが表示されます。(Finderで[フォルダに移動...]コマンドを使用し、パス "〜/ library"を指定します)。
文字列パスのSwiftバージョン:
let docDirPath =
NSSearchPathForDirectoriesInDomains(.documentDirectory,
.userDomainMask, true).first
print(docDirPath)
およびフォルダのURL:
let docDirUrl =
FileManager.default.urls(for: .documentDirectory,
in: .userDomainMask).first
print(docDirUrl)
Xcodeが2019+Catalina、Xcode11.0でシミュレーターを保存する場所
ランタイム
$ open ~/Library/Developer/CoreSimulator/Profiles/Runtimes
例:iOS 13.0
、watchOS 6.0
これらははるかに多くのスペースを占有します。それぞれ最大5GBまで可能です
デバイス
$ open ~/Library/Developer/CoreSimulator/Devices
例:iPhone Xr
、iPhone 11 Pro Max
。これらは通常、それぞれ15mb未満です。
説明
シミュレーターは、ランタイムとデバイスに分割されます。実行$ xcrun simctl list
すると概要が表示されますが、これらのシミュレータの物理的な場所を確認したい場合は、私が示したこれらのディレクトリを調べてください。
サポートしていないランタイムを削除するのは完全に安全です。必要に応じて、後でこれらを再インストールできます。
iOS 5の場合:
/ Users/[ユーザー名]/Library / ApplicationSupport / iPhone Simulator / 5.0 / Applications / [AppGUID] /
Xcode 4.6の場合、次のパスに保存されます。
/ Users / [currentuser] / Library / Application Support / iPhone Simulator / 6.1 / Applications /
プログラムでそれを知るには、次のコードを使用してください
NSLog(@"path:%@",[[NSBundle mainBundle]bundlePath]);
iOS8の場合
Documentsフォルダーを見つけるには、 Documentsフォルダーにファイルを書き込みます。
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *fileName = [documentsDirectory stringByAppendingPathComponent:@"Words.txt"];
NSString *content = @"Apple";
[content writeToFile:fileName atomically:NO encoding:NSStringEncodingConversionAllowLossy error:nil];
と言うdidFinishLaunchingWithOptions
。
次に、ターミナルを開いてフォルダを見つけることができます。
$ find ~/Library -name Words.txt
誰かがまだライオンでこの問題を経験しているなら、あなたの〜/Libraryディレクトリを表示するための19の異なるヒントを含む素晴らしい記事があります。ここでDanFrakesの記事を見つけてくださいhttp://www.macworld.com/article/161156/2011/07/view_library_folder_in_lion.html
シミュレータへのディレクトリは以下のとおりです。
〜/ライブラリ/アプリケーションサポート/iPhoneシミュレータ/ユーザー/
Xcodeをあまり使用しないreact-nativeユーザーの場合は、を使用できますfind
。ターミナルを開き、データベース名で検索します。
$ find ~/Library/Developer -name 'myname.db'
正確な名前がわからない場合は、ワイルドカードを使用できます。
$ find ~/Library/Developer -name 'myname.*'
macOS Catalinaの場合、次の場所でデータベースを見つけました。
~/Library/Developer/CoreSimulator/Devices/{deviceId}/data/Containers/Data/Application/{applicationId}/Documents/my.db
を取得するためにapplicationId
、変更した日付でフォルダーを並べ替えましたが、それを行うためのより良い方法があると確信しています。
私はこのプログラムとは関係がありませんが、ファインダーでこれを開くことを検討している場合は、SimPholdersを使用すると非常に簡単になります。
以下のコードを使用してみてください
NSString *fileName = @"Demo.pdf";
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *pdfFileName = [documentsDirectory stringByAppendingPathComponent:fileName];
NSLog(@"File path%@",pdfFileName);
シミュレーターでxCodeを組み込んだアプリの辞書を開くには、次の手順を実行します。
- ファインダーワインダーを開く(スマイリーフェイスアイコン)
- 次に、[移動]->[フォルダに移動]をクリックします
- タイプ:〜/ Library / Application Support / iPhone Simulator
- ディレクトリは、さまざまなシミュレータのiOSバージョンです。
- サブディレクトリは、シミュレータにインストールされるアプリです。
- Documentsフォルダは、iCloudにバックアップするユーザー生成コンテンツの場所です