複数のiOSシュミレーターを1回のコンパイルで実行する方法。

シュミレーターの列挙

まず、UIの検証をする時に複数のデバイスで確認したいと思った事はありませんか?そんな時のために複数のシュミレーターを1回のコンパイルで実行する方法を紹介していこうと思います。

まず始めに、実行する時に使用するシュミレーターを列挙します。私の場合は全ての大きさを試したかったので、

iPhone SE
iPhone 8
iPhone XR
iPhone 8 Plus
iPhone XS
iPhone XS Max

この様になりました。上から順番に実行されるので画面の大きさ順に並べておくと良いと思います。以下のコマンドで一覧を表示する事ができます。

instruments -s device

列挙した端末の名前をプロジェクトと同じ階層にテキストファイルとして保存します。今回はMultiSimConfig.txtとしました。後ほど名前を利用するので覚えておきましょう。

.appファイルをインストールするスクリプトを用意する。

以下のコードをプロジェクトと同じ階層にシェルスクリプト(.shファイル)として保存してください。

${project_name}にはプロジェクト名、${app_name}にはアプリ名、${MultiSimConfig.txt}にはMultiSimConfig.txtへのパス、${bundle_identifier}にはアプリのbundle identifierを入力してください。${project_name}と${app_name}は通常であれば同じだと思います。

新しいシュミレーターの追加

左上からAdd additional simulatorを押して新しい端末を追加します。シミュレーターの名前を今回はAll Size Simulatorsにしました。端末の種類はMultiSimConfig.txtの一番最後に選択した端末にしましょう。選択したあとはMultiSimConfig.txtの一番最後のシュミレーターは消してしまって構いません。

Build Phaseの追加

最後に、Build PhasesからNew Run Script Phaseを選択して追加します。コードの部分に以下のコードを追加します。

All Size Simulatorsの部分のみ各自設定したシュミレーターの名前に変更してください。そのシュミレーターでビルドした時のみ、インストールスクリプトが実行されます。

実行

実行する時は必ずMultiSimConfig.txtに書いてあるシミュレーターを全て予め起動しておいてください。起動するのが面倒であれば、launch_multiple_simulators.shの3行目と10行目のコメントアウトを外せば自動的に起動してくれますが、稀に上手く動かない事があります。

最後に

6つのシュミレーターを起動して全ての大きさの端末でUIの確認を行いましたが、シュミレーターがすごく動かしづらくなったり、処理が遅くなったりしたので、2、3個で使用するのが良いと思います。

今回はこの記事を参考にしましたので、興味があれば見てみてください。

Leave a Reply

Your email address will not be published. Required fields are marked *