日々精進

新しく学んだことを書き留めていきます

build variantの一部をビルド対象としない

product flavorを開発環境・テスト環境・本番環境などで分けることはよくあると思うが、 その場合開発環境・テスト環境版はreleaseビルドさせたくないだろう。

そういう場合にbuild variantの一部をビルド対象としないようにするにはvariantFilterを使う。

android {
    productFlavors {
        production {
            ...
        }
        staging {
            ...
        }
        development {
            ...
        }
    }

    // ステージング環境・開発環境用モジュールはdebugビルドのみとする
    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);
            }
        }
    }
}

参考: