アプリデータを保存するために使用しているSQLite DBがあり、その中を見て問題をデバッグすることができますが、通常、iPhone Simulatorはそのデータをどこに保存しますか?
受け入れられた回答はSDK 3.2に対して正しい-SDK 4は、そのパス内の/ UserフォルダーをレガシーiPhone OS/iOSバージョンごとの番号に置き換えますシミュレートできるため、パスは次のようになります。
〜/ Library/Application Support/iPhone Simulator/[OS version]/Applications/[appGUID] /
以前のSDKをインストールした場合、3.1.xシミュレーターは引き続きデータを次の場所に保存します:
〜/ライブラリ/ Application Support/iPhone Simulator/User/Applications/[appGUID] /
Xcode6およびiOS8の場合
〜/ Library/Developer/CoreSimulator/Devices/[DeviceID]/data/Containers/Data/Application/[AppID] /
それを見つけた:
~/Library/Application Support/iPhone Simulator/User/
ターミナルなしでアプリのデータがどこにあるかを見つける別の(より高速な?)方法があります。
iOS 8〜/ Library/Developer/CoreSimulator/Devices/[デバイスID]/data/Applications/[appGUID]/Documents /
Lionでは、Users/[username]/Library
は非表示になっています。
単にFinderで表示するには、画面上部の[移動]メニューをクリックし、[alt]キーを押しながら[ライブラリ]を表示します。
[ライブラリ]をクリックすると、以前に隠されていたライブラリフォルダーが表示されます。
以前のアドバイス:
つかいます
chflags nohidden /users/[username]/library
ターミナルでフォルダを表示します。
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進文字列です。
どこかでブレークポイントをキャッチします。
コンソールウィンドウにpo NSHomeDirectory()
と入力します
(lldb)po NSHomeDirectory()/Users/usernam/Library/Developer/CoreSimulator/Devices/4734F8C7-B90F-4566-8E89-5060505E387F/data/Containers/Data/Application/395818BB-6D0F-499F -AAFE-068A783D9753
少なくともiOS 8シミュレーターでは、Xcode 6.0がこの場所をもう一度移動したようです。
〜/ライブラリ/ Developer/CoreSimulator/Devices/[DeviceID]/data/Containers/Data/Application/[AppID]
シミュレーターが実行されている場合、アプリのコンテナーへのパスを取得できます。
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
「booted」は、デバイスUDIDが予想される場所であれば、ほとんどのsimctl
コマンドに置き換えることができます。
xcrun simctl list
でデバイスのリストを表示し、xcrun simctl help
で特定のコマンドのヘルプを取得できます。
更新:Xcode 8.3の一般的なリクエストでは、「app」、「data」、「groups」、またはapp group identifierを追加することで、必要なコンテナーの種類を指定できるようになりました。
データコンテナを取得するには:
$ xcrun simctl get_app_container booted com.example.app data
IOS 5の場合:
/ Users/[ユーザー名] /ライブラリ/ Application Support/iPhone Simulator/5.0/Applications/[AppGUID] /
Xcode 4.6の場合、次のパスに保存されます...
/ Users/[currentuser]/Library/Application Support/iPhone Simulator/6.1/Applications /
プログラムで知るには、次のコードを使用します
NSLog(@"path:%@",[[NSBundle mainBundle]bundlePath]);
これを行うだけです:
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)
iOS 8の場合
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 dirを表示するための19のヒントを持つ素晴らしい記事があります。 Dan Frakesの記事はこちらから http://www.macworld.com/article/161156/2011/07/view_library_folder_in_lion.html
シミュレーターへのディレクトリは以下のとおりです。
〜/ライブラリ/ Application Support/iPhone Simulator/User /
Xcodeを頻繁に使用しない反応ネイティブのユーザーには、find
を使用できます。ターミナルを開き、データベース名で検索します。
$ find ~/Library/Developer -name 'myname.db'
正確な名前がわからない場合は、ワイルドカードを使用できます。
$ find ~/Library/Developer -name 'myname.*'
シミュレーターでxCodeでビルドするアプリの辞書を開くには、次の手順を実行します。
私はこのプログラムとは提携していませんが、Finderでこのいずれかを開く場合は 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);