[Xcode8]iOS SimulatorのDocumentsディレクトリを簡単に開く方法

iOSアプリを開発中にiOS Simulatorが使用しているアプリフォルダを開くのは階層が深いし、見ても分からないような文字列のフォルダ名になっているので非常に面倒。stackoverflowにAutomatorを使って簡単に開けるようにする方法があったので、具体的な設定方法を記載しておきたいと思う。一応書いておくと、この方法は任意のアプリのフォルダを開く方法ではなくて、iOS Simulator上で最後に実行されたアプリのフォルダを開く方法。 openfolder_automator1
Automatorを起動する。
openfolder_automator2
"新規書類"を選択する。
openfolder_automator3
"アプリケーション"を選択し"選択"ボタンをクリックする。
openfolder_automator4
"シェルスクリプトを実行"をダブルクリックする。(または、右側のペインにドラッグ&ドロップ)
%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-09-27-13-49-51
デフォルトで"cat"と表示されている所に、以下のコードをペーストする。この例ではApplicationフォルダを開くようにしているが、Documentsフォルダまで一気に開きたい場合は、3行目のコメントを外す。

cd ~/Library/Developer/CoreSimulator/Devices/
cd `ls -t | head -n 1`/data/Containers/Data/Application 
#cd `ls -t | head -n 1`/Documents
open .
openfolder_automator5
このオプション設定は、しなくても動くけどAutomator上で実行すると警告が出るので、一応チェックを入れておく。あとは、デスクトップなどに保存しておけば、それをダブルクリックするだけで、最後に実行したアプリのフォルダを開くことが出来る。
シェルスクリプトの中身
上記のスクリプトについて、一応何をやっているかと言えば、lsコマンドの-tオプションはファイルのタイムスタンプの更新日の降順(新しい順)に並べるコマンド。headというのはheadコマンドに入力された先頭のn行を抜き出すコマンド。オプションで-n 1と指定されているので先頭の行だけを返している。つまり、lsコマンドとheadコマンドだけで、一番最後にアクセスされたディレクトリを抜き出して、cdコマンドに渡している大変すばらしいシェルスクリプトだと思う。
この記事に書かれている製品やソフトについて
  • Mac OS X El Capitan(10.11.6)
  • Automator 2.6(419)
  • Xcode 8.0(8A218a)
  • iOS Simulator 10.0