xyk blog

最近は iOS 開発の記事が多めです。

iOS シミュレータ・アプリのディレクトリの場所

環境:
Xcode7.1

アプリデータのディレクトリを調べる

例えば iOSシミュレータにインストールした、あるアプリのDocumentsディレクトリは以下のようになる。

~/Library/Developer/CoreSimulator/Devices/CC8FA744-B3C2-4689-839F-33B504F6168A/data/Containers/Data/Application/3E4EBE82-0BC7-405E-B143-5F40B03EBBA8/Documents

バイスID、アプリIDの部分がランダムな文字列になっていて、パスからは何のアプリなのか判別できない。

このパスはアプリで以下コードを実行することで確認することができる。

// swift3
print(NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).last!)

最後に使用したシミュレータのデバイスで、最後にインストールしたアプリのDocumentsディレクトリは以下のコマンド一発でFinderを開くことができる。

$ cd ~/Library/Developer/CoreSimulator/Devices/ 
  && cd `ls -t | head -n 1`/data/Containers/Data/Application 
  && cd `ls -t | head -n 1`/Documents 
  && open

iOSシミュレータのディレクトリを調べる

Xcode でアプリ開発時に使用するiOSシミュレータ。  

f:id:xyk:20151026140215p:plain

iOSシミュレータのディレクトリは以下にある。

~/Library/Developer/CoreSimulator/Devices

各シミュレータのディレクトリは以下のようにランダムな文字列の名前となっていて、これを見ただけでは、どのデバイスと紐付いているのかわからない。

f:id:xyk:20151012223634p:plain

このディレクトリがどのデバイスと紐付いているかはXcode > Window > Devicesの Identifier で確認できる。

f:id:xyk:20151027005527p:plain

または以下コマンドからでも確認できる。

$ instruments -s devices
Known Devices:
mbp [502448C4-0A7D-5D96-8EAA-3FE2C32D9C5B]
Apple TV 1080p (9.0) [33BE56A7-BB99-4A45-88E2-3C9C482EDB45]
Apple Watch - 38mm (2.0) [1F3FB32B-2C35-4951-B1D6-C797CEDC2A65]
Apple Watch - 42mm (2.0) [D0E0AA11-7276-4C76-BBFA-2B2571EC13E3]
iPad 2 (9.1) [003458F4-881A-44C9-9E73-815F50790117]
iPad Air (9.1) [CFA403BF-2738-4FF9-A32B-0520D0D8E167]
iPad Air 2 (9.1) [C402142B-130E-4456-B579-E2C032BAFB8C]
iPad Pro (9.1) [01D9E203-1D49-4342-B642-B2FC82C54CB4]
iPad Retina (9.1) [05637EC1-2820-4AB2-BE24-5D8BF7B76DE3]
iPhone 4s (9.1) [8FB284BC-7022-4E3F-9D59-41299CFBB3AC]
iPhone 5 (9.1) [05F41E8B-0C60-4917-B706-DAB2A5C683B8]
iPhone 5s (9.1) [F46048FE-9455-4814-93DF-F5CFCFEE06EA]
iPhone 6 (9.1) [951E310E-D37C-4EF1-83EA-68FFA8233CC0]
iPhone 6 Plus (9.1) [7839119B-EE08-4E39-94C4-9991EC6C804D]
iPhone 6s (9.1) [F5B6F4BB-EEC0-404E-80EA-B200433ACC47]
iPhone 6s (9.1) + Apple Watch - 38mm (2.0) [C67B741D-279E-4DF0-840A-8EE151B75756]
iPhone 6s Plus (9.1) [63933384-7F47-444F-82EE-A3BA10D6A769]
iPhone 6s Plus (9.1) + Apple Watch - 42mm (2.0) [D275AF10-7558-4BED-9B9D-75C65CD7D983]

これで紐付けはわかるが Finder でそのディレクトリまで掘っていくのが面倒くさい。
そこでディレクトリを一発で開くことができるツールを使ってみた。

SimulatorManager

シミュレータ一覧と、シミュレータ内のアプリフォルダが表示されるので選択すれば Finder でディレクトリを開くことができる。

github.com

f:id:xyk:20151022153225p:plain

バイナリのダウンロードはこちら
https://github.com/tue-savvy/SimulatorManager/releases

SimPholders2

こちらはシミュレータにインストールされたアプリ一覧が表示される。
だが、たまに上手く動かないときがある・・・

kfi-apps.com

f:id:xyk:20151012174405p:plain


ちなみに各iOSシミュレータのログディレクトリは以下にある。

~/Library/Logs/CoreSimulator

f:id:xyk:20151012223647p:plain