Gradle用のAndroidプラグインでproductFlavorまたはbuildTypeにカスタム属性を追加する方法はありますか? buildVariants のタスクを指定するときにカスタム プロパティを確認できるように、buildVariants の構成に柔軟性を持たせたいと考えています。
productFlavors {
flavorGroups "drm", "storeType"
googlePlay {
flavorGroup "storeType"
buildConfig "public static final String TARGET_STORE = \"google\";"
}
samsungApps {
flavorGroup "storeType"
buildConfig "public static final String TARGET_STORE = \"samsung\";"
}
platformDrm {
flavorGroup "drm"
}
widevineAppDrm {
flavorGroup "drm"
minSdkVersion 9
useWidevineAppDrmLib true
}
}
ここでは、フレーバーを構築するためにカスタム属性「useWidevineAppDrmLib」を追加したことがわかります。buildVariant.mergedFlavor に同じ属性があると便利です。これにより、その属性値を確認し、属性が true に設定されている場合に追加の .so ファイルをパッケージ化するなど、追加のタスクをビルドできます。
android.applicationVariants.each { variant ->
if(variant.mergedFlavor.useWidevineAppDrmLib ) {
... // add copy .so task
}
}
すでにそれを行う方法があるかもしれませんが、まだ知りませんでした...部分文字列(フレーバー名)のビルドバリアント名をチェックすることはうまくいきますが、汚れているように見えます。
理想的には、buildType と productFlavor のさまざまなタイプのカスタム属性のマップが必要です。