iPhone simulator へのアプリ(.app)インストール方法


端末用のipaファイルからSimulatorへのインストールはarchitectureが異なるからか無理そうだったが、一度iPhone simulator でDebugした後であれば、別デバイス/バージョンのiPhone simulator へアプリインストールできた。
毎回ビルドするのに時間かかる場合に役立つかもしれない。
また、古いXcodeでビルドしたアプリをXcodeの新バージョンにbundleされたsimulatorで試したい場合など（xcode8ビルドのアプリを、Xcode9GMのiPhone X Smulatorで試したい）にも役立つかもしれない。

参考：
http://stackoverflow.com/questions/517463/how-can-i-install-a-ipa-file-to-my-iphone-simulator
http://stackoverflow.com/questions/26031601/xcode-6-launch-simulator-from-command-line

##方法
###事前準備
対象アプリをXcodeにてiPhone simulator で一度Debug実行しておく。


###手順
1. ターミナルを開く。
2. デバッグしたiPhone simulatorの対象アプリフォルダへ移動。
	
	
	```例
	#simulator でデバッグした直後なら、~/Library/Developer/CoreSimulator/Devices内で一番TimpStampが直近のフォルダが対象のiPhone simulatorフォルダ
	$ cd ~/Library/Developer/CoreSimulator/Devices/[iPhone simulatorのID]/data/Containers/Bundle/Application/[アプリのid]
	```
	
3. 以下のコマンドでsimulator一覧を取得。
※新しいシュミレーターが出てこない時などは、Xode->Preference->Locations->Command Line Toolsを最新Xcodeに変えてみると解決するかもしれない。
	
	```
	$ xcrun instruments -s
	```

	``` ex simulator一覧出力例
	iPhone 6 Plus (8.4) [xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx] (Simulator)
	iPhone 6 Plus (9.3) [xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx] (Simulator)
	iPhone 6s (11.0) [xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx] (Simulator)
	iPhone 6s (11.0) [xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx] (Simulator)
	iPhone 6s (9.3) [xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx] (Simulator)
	iPhone 6s Plus (11.0) [xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx] (Simulator)
	iPhone 6s Plus (11.0) [xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx] (Simulator)
	iPhone 6s Plus (9.3) [xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx] (Simulator)
	iPhone 7 (11.0) [xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx] (Simulator)
	iPhone 7 (11.0) [xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx] (Simulator)
	iPhone 7 (11.0) + Apple Watch Series 2 - 38mm (4.0) [xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx] (Simulator)
	iPhone 7 Plus (11.0) [xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx] (Simulator)
	iPhone 7 Plus (11.0) [xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx] (Simulator)
	iPhone 7 Plus (11.0) + Apple Watch Series 2 - 42mm (4.0) [xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx] (Simulator)
	iPhone 8 (11.0) [xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx] (Simulator)
	iPhone 8 (11.0) [xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx] (Simulator)
	iPhone 8 (11.0) + Apple Watch Series 3 - 38mm (4.0) [xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx] (Simulator)
	iPhone 8 Plus (11.0) [xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx] (Simulator)
	iPhone 8 Plus (11.0) [xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx] (Simulator)
	iPhone 8 Plus (11.0) + Apple Watch Series 3 - 42mm (4.0) [xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx] (Simulator)
	iPhone SE (11.0) [xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx] (Simulator)
	iPhone SE (11.0) [xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx] (Simulator)
	iPhone X (11.0) [xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx] (Simulator)
	iPhone X (11.0) [xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx] (Simulator)
	```
	
4. 上記取得結果からsimulatorを指定してsimulator起動。
	
	```
	$ xcrun instruments -w "3.で取得したsimulator idを指定"
	
	#例
	#xcrun instruments -w "[xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx]"
	```

5. simulatorに対象アプリインストール。

	```
	$ xcrun simctl install booted (対象app名).app
	```

##ios-simulator-app-installerを利用する方法
ios-simulator-app-installer(brewでinstall)を使うという方法もあった。
上記のappファイルのGUIインストーラーを作成するツールで便利だった。

http://www.moongift.jp/2015/05/ios-simulator-app-installer-ios%E3%82%B7%E3%83%9F%E3%83%A5%E3%83%AC%E3%83%BC%E3%82%BF%E5%90%91%E3%81%91%E3%82%A2%E3%83%97%E3%83%AA%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%A9%E3%83%BC/