✨ビルドバリアント・フレーバーについて - Ki-Kobayashi/Android-Wiki GitHub Wiki
🟩
https://future-architect.github.io/articles/20210120/
🟡
🟩 ビルドバリアントとは
「ビルドタイプ」「プロダクトフレーバー」の組み合わせにより、1つのモジュールから複数のバージョンに切り替えてアプリをビルドできる。
その組み合わせのことをいう。
🟡例えば。。。
・ビルドタイプ > Debug , Release
・プロダクトフレーバー > 無料版、有料版
上記がある場合、ビルドバリアントは下記の4種存在することになる。
- Debug + 無料版
- Debug + 有料版
- Release + 無料版
- Release + 有料版
🟩 ビルドタイプとは
デフォルトでは、「Debug」「Release」が用意されている。
ただし、一般的に以下の3つに環境を分けることが多い。
- 💎 production: 本番環境
→ リリース向けのビルド。最適化やプロガードが有効になることが一般的。 → サービスインしているエンドユーザーが利用する環境。git-flowならmasterブランチが対応
- 💎 staging: 検証環境
→ 本番リリース前の動作検証を行う場所。git-flowならdevelopブランチが対応
→ ほとんど本番に近い環境だが、サーバースペックは落としてあったり、外部API接続がテスト環境に繋がっていたりなどが異なる
- 💎 development: 開発環境
→ 開発時のデバッグに適したビルド。通常は最適化やプロガードが無効。
→ 開発中の機能を見てもらう時などに使う場所。git-flowならfeatureブランチが対応
→ stagingより更にカジュアルな環境で、簡単に作って潰すような使われ方をするためにリソースはケチって立てることが多い
🟩 プロダクトフレーバーとは
※先述のとおり、下記のような分け方がある(仕様による)
- 無料版 / 有料版
- minSdkVer / targetSdkVer
🚨基本的な記述はビルドタイプと同様ですが、flavorDimensionsを指定する必要がある
🟡
🟩 設定例(ビルドタイプ2通り)
android {
// 省略...
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
debug {
// 💡applicationIDの末尾に指定した文字列を追加してくれるパラメータ
// 💡release と debug で applicationID を変えることで、1つの端末上で2つのバージョンのアプリを共存させられる
applicationIdSuffix ".debug"
debuggable true
}
}
}