✨ビルドバリアント・フレーバーについて - Ki-Kobayashi/Android-Wiki GitHub Wiki

🟩

https://future-architect.github.io/articles/20210120/

🟡

🟩 ビルドバリアントとは

「ビルドタイプ」「プロダクトフレーバー」の組み合わせにより、1つのモジュールから複数のバージョンに切り替えてアプリをビルドできる。
その組み合わせのことをいう。

🟡例えば。。。

・ビルドタイプ     > Debug , Release
・プロダクトフレーバー > 無料版、有料版

上記がある場合、ビルドバリアントは下記の4種存在することになる。

  1. Debug + 無料版
  2. Debug + 有料版
  3. Release + 無料版
  4. 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
        }
    }

}

🟡

🟩

🟡

🟩

🟡

🟩

🟡

🟩

🟡

🟩

🟡