XCode7でやり方が変わっているので、追記しています。
はじめに
久々に更新…ゆう@あんのうんです。
XCode6でSQLiteを扱っており、XCode5の頃と物理ファイルの設置場所が大きく変わって居るのを忘れて、探しまわってしまったので、備忘録として、メモ。
XCode6の場合
SQLite等、XCode6でのリソースの物理ファイルは以下に配置されます。
~/Library/Developer/CoreSimulator/Devices/デバイスID/data/Containers/Data/Application/アプリID/Documents/
んで、覚えるの面倒くさいなーと思ったら、良いツールがありました。
これがあれば、物理ファイルとか覚えなくても、リソースの場所を視覚的に表示してくれるので非常に便利です。
XCode7以降の場合
上記のSimpholdersがXCode6までしか対応しておらず、XCode7(iOS9.0)以降は、現状自分で該当のディレクトリを割り出すしかありません。 ここでは、ディレクトリを割り出す為の方法を何個かご紹介します。
PGMにDocumentRootをログに吐き出す処理を埋め込んでしまう
これば一番てっとり早いです。 AppDelegate等に以下のログを仕込んでしまって確認する方法です
swiftの場合
#if DEBUG print("----------------------------------"); print("[DEBUG]"); let documentsPath = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as String print(documentsPath) print("----------------------------------"); #endif
objective-cの場合
#if DEBUG NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsPath = paths[0]; NSLog(@"----------------------------------"); NSLog(@"[DEBUG]"); NSLog(@"[Document Path] : %@", documentsPath); NSLog(@"----------------------------------"); #endif
コマンドラインで見つける場合
cd ~/Library/Developer/CoreSimulator/Devices find . -name "hogehoge.sqlite" # SQLiteのファイル名
早くSimPholderがXCode7以降に対応してくれることを切に願うばかりですね。