多渠道打包

243 阅读1分钟

1 .遍历AndroidManifest文件 进行字符串替换 AndroidManifest.xml

builde.gradle

android {
productFlavors { "xiaomi"{} "360market"{} "baidu"{} "wandoujia"{} }

applicationVariants.all { variant -> variant.processManifest.doLast { def manifestFilePath = "{buildDir}/intermediates/manifests/{variant.dirName}/AndroidManifest.xml" def updatedContent = new File(manifestFilePath).getText('UTF-8'). replaceAll("CHANNEL_VALUE", "{variant.productFlavors[0].name}")
          new File(manifestFilePath).write(updatedContent, 'UTF-8')
          def manifestFile = file(
                  "{buildDir}/intermediates/manifests/${variant.dirName}/AndroidManifest.xml") variant.processResources.manifestFile = manifestFile } } }

2 . 利用productFlavors属性 AndroidManifest.xml

builde.gradle

android {
productFlavors { "xiaomi"{ manifestPlaceholders = [channelName: "xiaomi"] } "360market"{ manifestPlaceholders = [channelName: "360market"] } "baidu"{ manifestPlaceholders = [channelName: "baidu"] } "wandoujia"{ manifestPlaceholders = [channelName: "wandoujia"] } }
} 或者可以批量修改

android {
productFlavors { "xiaomi"{} "360market"{} "baidu"{} "wandoujia"{} }

productFlavors.all { flavor -> flavor.manifestPlaceholders = [channelName: name] } }