build.gradleでflavourを分けていると、特定のbuild variantは作成したくない時があります。
例えば、staging、developmentのflavourではreleaseビルドしないのでdebugビルドだけやりたい、みたいな場合です。
これを実現するには variantFilter
を使います。
build.gradle
productFlavors {
development {
//(略)
}
staging {
//(略)
}
production {
//(略)
}
}
//(略)
variantFilter { variant ->
if (variant.buildType.name.equals('release')) {
if (variant.getFlavors().get(0).name.contains('staging')
|| variant.getFlavors().get(0).name.contains('development')) {
variant.setIgnore(true);
}
}
}
なんでこんなことをするかというと、ビルド高速化のためです。
例えば assembleStagingDebug
のようにした場合でも、なんだかReleaseビルドもやってるような動きをします。それだと無駄に時間がかかるので、ちょっとでも速くしようと、必要ないbuild variantは作らない方がいいと思った次第です。
これをやった結果、ビルドがちょっと速くなった気がします。