iOSシミュレーター・Androidエミュレーターにアプリをインストールだけする(起動までしない)方法

なぜ

アプリの初回起動時専用の特別な処理や画面遷移を行うケースで、そのデバッグ実行・動作確認をするため。

iOS

まずインストールするためのアプリは Build For Running でビルドしておく。次にシミュレーターを起動しておいて

xcrun simctl install booted <~~.appのパス>

のコマンドを実行する。

もしくは、シミュレーターのウィンドウに ~~.app をFinderからドラッグ&ドロップする。

Xcodeのスキーム設定の Wait for the executable to be launched が使えるのでは、と一瞬考える。しかしこれはシミュレーターにインストール済みのアプリには使えるのだが、まだインストールされていないアプリの場合は、アプリのインストールまではやってくれないので、ただ待つだけ(何も起きない)状態になる。ので、別途自分でインストールしてあげる必要がある。

UserDefaultsやKeychainも含めてまっさらな初回起動状態の再現のために、シミュレーターのメニューの Device -> Erase All Content and Settings… も便利。

Android

エミュレーターを起動しておいて

gradlew installDevelopDebug

のコマンドを実行する。DevelopDebug の部分は使いたいbuild variantを指定する。こちらはエミュレーターではなく実機接続でも動作する。

iOSシミュレーター同様に、エミュレーターのウィンドウにapkファイルをドラッグ&ドロップでもインストールできる。