平時的多渠道打包配置方式:
android {
......
productFlavors {
flavorName1 {
manifestPlaceholders.put("JPUSH_CHANNEL", "channel_1")
buildConfigField("int", "fieldXxx", "1")
......
}
flavorName2 {
manifestPlaceholders.put("JPUSH_CHANNEL", "channel_2")
buildConfigField("int", "fieldXxx", "2")
......
}
.......
}
}
這種方式沒啥問題,只是寫起來太煩了,一堆的重複代碼,我不爽,我要封裝一下:
android {
......
productFlavors {
ext.flavor = { _flavor, _jPushChannel, _fieldXxx ->
_flavor.manifestPlaceholders.put("JPUSH_CHANNEL", _jPushChannel)
_flavor.buildConfigField("int", "fieldXxx", _fieldXxx)
}
flavorName1 {
flavor(flavorName1, "channel_1", "1")
}
flavorName2 {
flavor(flavorName2, "channel_2", "2")
}
}
}
封裝完成,編譯運行也沒有問題。
但是每個渠道要寫 3 行代碼,寫兩遍渠道名,還是不爽,我要一行搞定:
android {
......
productFlavors {
ext.flavor = { _flavor, _jPushChannel, _fieldXxx ->
_flavor.manifestPlaceholders.put("JPUSH_CHANNEL", _jPushChannel)
_flavor.buildConfigField("int", "fieldXxx", _fieldXxx)
}
flavor(flavorName1, "channel_1", "1")
flavor(flavorName2, "channel_2", "2")
}
}
完美~