ビルド
モバイルアプリの開発では、ステージング環境や本番環境などに応じて、接続先のサーバやアプリアイコンなどを変更したいケースが多くあります。
それらのケースに対応するため、このアプリではExpoのPrebuildや、Config Pluginsなどの仕組みを利用して、柔軟にビルドを設定できるようにしています。
Prebuild
Expoには、アプリのネイティブプロジェクト(ios
、android
ディレクトリ)を自動生成するPrebuildという機能があります。
npx expo prebuild
を実行すると、expo-template-bare-minimumをベースにネイティブプロジェクトが生成されます。
アプリアイコンや、アプリケーションIDなど多くの設定値は、Expo config(app.json, app.config.js)に指定した値で変更できます。
Expo SDK 46以下のPrebuild
はプロキシ環境下で動作しません。
Config Pluginsに対応するとPrebuild
の実行が必須となります。プロキシ環境下で開発を進めるプロジェクトはご注意ください。
おそらく次のPull Requestに関連する不具合と推測しております。
- feat(cli): add proxy support(https://github.com/expo/expo/pull/19592)
このPull RequestはExpo SDK 47で取り込まれております。Expo SDK 47以降においては、プロキシ環境下でもPrebuild
が動作することを確認出来ております。
Config Plugins
前述したように、Prebuild
時に生成するネイティブプロジェクトの設定は、Expo configに指定した値で変更できます。
Expo configに設定された値は、Expoが標準で用意しているConfig Pluginsによって、Prebuild
で生成されるネイティブプロジェクトに反映されます。
しかしアプリによってはExpo configで指定可能な設定以外にも変更したい設定値が存在するケースもあります。
例えば、このアプリではステージング環境や本番環境などに応じてビルド時の署名設定を変更したいと考えています。 しかし、Expo configでは署名設定を変更できません。
それらのケースに対応するには、アプリ特有のConfig Pluginsを作成してPrebuild
時に適用します。
以降では、Prebuild
とConfig Pluginsを利用した環境の切り替え方法や、適用するConfig Pluginsなどを説明していきます。