Android Studio多渠道打包方式一:通过外部文件来写渠道信息

Android Studio多渠道打包方式一:通过外部文件来写渠道信息_第1张图片

代码如下:

def markets = (new File("${projectDir}/market.config").text).split("\n")
   productFlavors  {
       markets.each { name ->
           "$name" {
       }
   }
}
//用修改文件的方式修改应用的展示名
applicationVariants.all { variant ->
   def market = variant.productFlavors[0].name ;
   variant.mergeResources.doLast {
       copy{
           from("${projectDir}/src/main/AndroidManifest.xml")
           into("${buildDir}/manifests/$variant.name")
           filter{
               String line -> line.replaceAll("MOFANG_CHANNEL_VALUE", "$market")
           }
           variant.outputs[0].processResources.manifestFile = file("${buildDir}/manifests/${variant.name}/AndroidManifest.xml")
       }
   }
}

而market.config文件内就可以写渠道的信息了
例如:

另外需要注意的是,market.config文件必须转成mac格式,因为在Mac系统下,\n代表换行,在windows是\r\n

另外别忘记了在清单文件上配置信引用gradle配置的信息
Android Studio多渠道打包方式一:通过外部文件来写渠道信息_第2张图片

你可能感兴趣的:(Android Studio多渠道打包方式一:通过外部文件来写渠道信息)