在Android Studio中为了完成多个渠道的一次性打包,gradle的配置将为开发者带来最简单最快捷的方法,接下来我们看一下完成配置的步骤:
1.在gradle中添加签名信息:
signingConfigs {
release {
keyAlias "xxxx"
keyPassword "xxxx"
storeFile file('/Users/xxx/Desktop/ethankwireless.keystore')
storePassword "xxxx"
}
// debug {
// keyAlias "xxxx"
// keyPassword "xxxx"
// storeFile file('/Users/xxx/Desktop/ethankwireless.keystore')
// storePassword "xxxx"
// }
}
2.在gradle中添加渠道列表:
productFlavors {
//方法一:先添加,后依次修改渠道
baidu {}
tencent {}
productFlavors.all {
flavor -> flavor.manifestPlaceholders = [CHANNEL_VALUE: name]
}
//方法二:依次修改
//huawei {
// manifestPlaceholders = [CHANNEL_VALUE: "huawei"]
//}
//_360 {
// manifestPlaceholders = [CHANNEL_VALUE: "_360"]
//}
}
3.在defaultConfig方法中添加默认渠道:
manifestPlaceholders = [CHANNEL_VALUE: "yingyonghui"]
4.在buidlType方法中引用并且修改生成的apk的本地路径:
buildTypes {
release {
// 不显示Log
buildConfigField "boolean", "LOG_DEBUG", "false"
//引用签名信息:
signingConfig signingConfigs.release
//是否开启代码混淆
minifyEnabled true
//apk瘦身,移除无用的resource文件
shrinkResources false
//此处是系统默认的混淆文件路径
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
//修改生成的apk名字
applicationVariants.all { variant ->
variant.outputs.each { output ->
def outputFile = output.outputFile
if (outputFile != null && outputFile.name.endsWith('.apk')) {
def fileName = "${variant.productFlavors[0].name}_v${defaultConfig.versionName}_${releaseTime()}.apk"
output.outputFile = new File("/Users/xxx/Desktop/release/" + new new Date().toLocaleString(), fileName);
}
}
}
}
}
5.在manifest.xml中增加渠道声明标签:
<meta-data
android:name="CHANNEL"
android:value="${CHANNEL_VALUE}"></meta-data>
通过以上5步配置完毕后,我们会在你电脑桌面上的release文件夹中看到多个渠道apk!