Android Studio 多渠道打包
2016-11-29 本文已影响15人
linceln
使用友盟统计为例
一、原来的AndroidMenifest
配置中的
<meta-data
android:name="UMENG_CHANNEL"
android:value="Channel_ID" />
替换为
<meta-data
android:name="UMENG_CHANNEL"
android:value="${UMENG_CHANNEL_VALUE}" />
二、module
中的build.gradle中添加如下配置
productFlavors {
xiaomi {}
_360 {}
baidu {}
wandoujia {}
tencent{}
}
productFlavors.all {
flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
}
三、Build
-- Generate Signed APK...
-- 选择所有Flavors
-- Finish
四、完成
最后想要输出APK包时名字更容易识别的话,可以加上
buildTypes {
debug {
signingConfig signingConfigs.release
}
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
applicationVariants.all { variant ->
variant.outputs.each { output ->
def outputFile = output.outputFile
if (outputFile != null && outputFile.name.endsWith('.apk')) {
// 输出apk名称为HePingMao_v1.0.0_2015-01-15_wandoujia.apk
def fileName = "HePingMao_v${defaultConfig.versionName}_${releaseTime()}_${variant.productFlavors[0].name}.apk"
output.outputFile = new File(outputFile.parent, fileName)
}
}
}
}
}
其中releaseTime()
方法需要自定义
def releaseTime() {
return new Date().format("yyyy-MM-dd", TimeZone.getTimeZone("UTC"))
}
android {
compileSdkVersion 25
.....
}