android studio 多渠道打包
a.配置清单文件
在application节点中配置如下:
<meta-data
android:name="UMENG_CHANNEL"
android:value="{UMENG_CHANNEL}" >
</meta-data>
b.配置build.gradle脚本文件
//多渠道打包
productFlavors {
baidu {}
beta {}
}
productFlavors.all {
flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
}
c.在Terminal命令行面板中输入命令:
gradlew clean //清空之前的build目录
gradlew build //重新build project,完成后生成8个apk
生成结果如下:
注:假如想为生成的apk文件重命名,可以使用以下脚本(例如我们仅仅想对release 签名版本进行重命名)
applicationVariants.all { variant ->4
variant.outputs.each { output ->
def outputFile = output.outputFile
if (outputFile != null && outputFile.name.endsWith('release.apk')) {
def fileName = "wrapdemo${defaultConfig.versionName}_${releaseTime()}_${variant.productFlavors[0].name}.apk"
output.outputFile = new File(outputFile.parent, fileName)
}
}
}
其中releaseTime()为我们自定义的方法(获取当前时间以yyyyMMdd的形式),具体如下
def releaseTime() {
return new Date().format("yyyyMMdd", TimeZone.getTimeZone("UTC"))
}
之后在Terminal命令行面板中输入命令:
gradlew clean
gradlew build
生成apk结果如下图: