LCLの開発者ブログ2018-01-29デバイスサイズが異なるシミュレータで一度にアプリを起動して動作確認の効率を上げるiOSモバイルアプリエンジニアの山下です。Xが発売されて4ヶ月が経とうとしてますが、iOSエンジニアにとっては確認する端末がまたひとつ増え苦労しています。9からシミュレータ自体の並行起動は可能になりましたが、アプリの実行は1つのシミュレータでしかできないため複数の端末で動作確認する際は1つずつ手動で切り替えて実行する必要がありました。この確認作業はとても面倒ですし、都度ビルド時間が掛かるため塵も積もって大きなタイムロスになってしまいます。利用し、ターミナルからワンライナーで全てのデバイスサイズのシミュレータを同時起動できるようにしてみたいと思います。インストールHomebrewでインストールします。Carthageをアンインストールするとインストールできます。~/Library/Caches/org.carthage.CarthageKit実行手順シミュレータの起動からアプリを起動するまでの手順です。listでシミュレータ一覧を表示します。bootでシミュレータを起動します。listで表示された一覧の先頭の文字列がUDIDで複数渡すことで同時に起動させることができます。boot.appのパスを取得シミュレータへアプリをインストールするためには.appファイルが必要です。以下のコマンドでビルドを行い、生成された.appファイルのパスを取得します。"\/.*"/Users/XXX/Library/Developer/Xcode/DerivedData/<プロジェクト名>-dtjybaoudfhaodfetewcfjjbd/Build/Products/Test-iphonesimulatorシミュレータにアプリをインストール前で生成した.appファイルをシミュレータへインストールします。Identifierを指定してアプリを起動します。上記の操作だけでもアプリの起動まで簡単に行えますが、シェルスクリプトを作成してさらにラクをしたいと思います。プロジェクトルートに以下のシェルスクリプトを作成します。ファイル名はlaunch_app.shにしました。${BUNDLER_NAME}シェルスクリプトを作成したらシミュレータを起動し、以下のコマンドで実行します。developmentこれで1つのコマンドでアプリのインストールから起動まで行えます。bootコマンドも含めると良いですね。他にもいくつかのコマンドがあります。shutdownヘルプコマンドについて詳しくは以下のコマンドで表示できます。help最後に今回の運用を始めてから確認作業に掛かっていた手間と時間が圧倒的に減りました。fbsimctlはXCTestにも対応しているため、同様の操作でデバイスサイズごとのテストも一度に行えそうです。