端末用の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実行しておく。
###手順
-
ターミナルを開く。
-
デバッグしたiPhone simulatorの対象アプリフォルダへ移動。
#simulator でデバッグした直後なら、~/Library/Developer/CoreSimulator/Devices内で一番TimpStampが直近のフォルダが対象のiPhone simulatorフォルダ $ cd ~/Library/Developer/CoreSimulator/Devices/[iPhone simulatorのID]/data/Containers/Bundle/Application/[アプリのid]
-
以下のコマンドでsimulator一覧を取得。
※新しいシュミレーターが出てこない時などは、Xode->Preference->Locations->Command Line Toolsを最新Xcodeに変えてみると解決するかもしれない。$ xcrun instruments -s
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)
-
上記取得結果からsimulatorを指定してsimulator起動。
$ xcrun instruments -w "3.で取得したsimulator idを指定" #例 #xcrun instruments -w "[xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx]"
-
simulatorに対象アプリインストール。
$ xcrun simctl install booted (対象app名).app
##ios-simulator-app-installerを利用する方法
ios-simulator-app-installer(brewでinstall)を使うという方法もあった。
上記のappファイルのGUIインストーラーを作成するツールで便利だった。