Infinito Nirone 7

白羽の矢を刺すスタイル

ProductFlavor ごとに apply from で読み込む外部 Gradle ファイルを切り替える

flavor1flavor2 という 2 つの productFlavor があり、flavor ごとに名前が同じで値の異なる変数を使いたいとき、flavor1 向けの変数を定義した flavor1.gradleと flavor2 向けの変数を定義した flavor2.gradleを用意したとして、どのように apply from で読み込むファイルを切り替えるか。

flavor1.gradle

ext {
  versionMajor = 1
  versionMinor = 2
}

flavor2.gradle

ext {
  versionMajor = 1
  versionMinor = 2
}

versionCode や versionName は productFlavor ごとに変えられて、flavor1 や flavor2 といった flavor のなかで apply from が効くので次のようにします。

android {
  productFlavors {
    flavor1 {
      apply from: 'flavor1.gradle'
      versionCode = versionMajor * 100 + versionMinor
      versionName = "${versionMajor}.${versionMinor}"
    }
    flavor2 {
      apply from: 'flavor2.gradle'
      versionCode = versionMajor * 100 + versionMinor
      versionName = "${versionMajor}.${versionMinor}"
    }
  }
}

変数にしたのにそれぞれの productFlavor で versionCode と versionName を入れてやらないといけないのは冗長ですが仕方がない。。。