Android gradle实现多渠道号打包

时间:2022-09-01 10:47:43

在build.gradle中添加

productFlavors{
     LETV {
applicationId "×××××××××××" //包名
  buildConfigField "boolean", "×××", "true" //添加 boolean BuildConfig.×××
}

}

根据productFlavors 的 name 属性来动态修改icon,label

productFlavors.all {
flavor ->
if (name.equals("×××")) {//和上面buildConfig中的变量名对应
flavor.manifestPlaceholders = [CHANNEL_NAME: name, app_label: "@string/app_name", app_icon: "@mipmap/ic_launcher"]
        } else {
flavor.manifestPlaceholders = [CHANNEL_NAME: name, app_label: "@string/app_name1", app_icon: "@mipmap/ic_launcher1"]
}
}

AndroidManifest.xml 修改:

<application
 android:name=".Application"
 android:hardwareAccelerated="true"
 android:icon="${app_icon}"
 android:label="${app_label}"
 android:largeHeap="true"
 android:theme="@style/AppTheme"
 tools:replace="android:label,android:icon"》

在应用层开发中,通过BuildConfig.×××来进行判断,执行不同的代码块。