メインコンテンツまでスキップ

環境やビルドタイプに応じたアプリ起動

このアプリでは、ビルド環境ビルドタイプを切り替えてアプリをインストール、起動できます。

環境の切り替え

このアプリでは、以下4つの環境に切り替えることができます。

  • local
  • dev
  • stg
  • prod

環境を切り替えるためにはPrebuildを実行します。

local環境

local環境に切り替える場合は、以下のコマンドを実行します。

npm run prebuild

dev環境

dev環境に切り替える場合は、以下のコマンドを実行します。

npm run prebuild:dev

stg環境

stg環境に切り替える場合は、以下のコマンドを実行します。

npm run prebuild:stg

prod環境

prod環境に切り替える場合は、以下のコマンドを実行します。

npm run prebuild:prod

pod-install(iOS)

iOSの場合、環境を切り替えた後はPodsをインストールする必要があります。

npm run pod-install

ビルドタイプに応じたアプリ起動

アプリをデバイスにインストールして起動するコマンドは、ビルドタイプに応じて異なります。

また、環境の切り替えと同様に、コマンドのサフィックスに環境名を指定します。

コマンドのサフィックスに環境名を指定する理由

環境の切り替えに記載したコマンドを実行することで、基本的にはアプリの環境が切り替わります。

ただし、アプリ特有の設定値に関しては、アプリのビルド時やMetroBundlerの起動時に環境変数ENVIRONMENTを設定することで、環境に応じた値が読み込まれます。

そのため、環境ごとのコマンドを用意して、そのコマンド内で環境変数ENVIRONMENTを設定しています。

デバッグビルド

環境AndroidiOS
localnpm run androidnpm run ios
devnpm run android:devnpm run ios:dev
stgnpm run android:stgnpm run ios:stg
prodnpm run android:prodnpm run ios:prod
注記

既にアプリをインストール済みの場合は、以下のコマンドを実行してMetro Bundlerを立ち上げるだけでも問題ありません。

  • npm start(local環境)
  • npm run start:dev(dev環境)
  • npm run start:stg(stg環境)
  • npm run start:prod(prod環境)

ただし、local環境でnpm startを実行した場合は、以下の制約があります。

Expo CLIがコンソールに>Press i │ open iOS simulatorと表示するが、iを押してもシミュレータは起動しない

Expo CLIは、シミュレータの起動とアプリの起動を実施するのですが、アプリを起動する際のBundleIdentifierがうまく解決できないためです。 iを押すと以下のようなエラーが表示されます。

CommandError: No development build (personal.jp.fintan.mobile.SantokuApp.local.${PERSONAL_IDENTIFIER}) for this project is installed. Please make and install a development build on the device first.

この場合は、手動でシミュレータとアプリを立ち上げてください。

リリースビルド

環境AndroidiOS
localnpm run android -- --variant releasenpm run ios -- --configuration Release
devnpm run android:dev -- --variant releasenpm run ios:dev -- --configuration Release
stgnpm run android:stg -- --variant releasenpm run ios:stg -- --configuration Release
prodnpm run android:prod -- --variant releasenpm run ios:prod -- --configuration Release