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

ビルド

モバイルアプリの開発では、ステージング環境や本番環境などに応じて、接続先のサーバやアプリアイコンなどを変更したいケースが多くあります。

それらのケースに対応するため、このアプリではExpoのPrebuildや、Config Pluginsなどの仕組みを利用して、柔軟にビルドを設定できるようにしています。

Prebuild

Expoには、アプリのネイティブプロジェクト(iosandroidディレクトリ)を自動生成する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に関連する不具合と推測しております。

この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などを説明していきます。