不会吧,不会吧,你竟然还不会多渠道打包?哈哈,切入正题,下面为大家讲解多渠道打包。
多渠道打包就是让我们项目一次生成多个渠道的apk包。
步骤一
第一步我们先来配置AndroidManifest.xml
在我们AndroidManifest.xml文件下的avtivity标签中配置以下内容:
<meta-data android:value="${UMENG_CHANNEL_VALUE}" android:name="UMENG_CHANNEL"/>
第二步到我们的根build.gradle下配置:
maven{url 'https://dl.bintray.com/umsdk/release'}
步骤二
在APP级别下的build.gradle文件下,配置我们的flavor
productFlavors{
wandoujia{
manifestPlaceholders = [UMENG_CHANNEL_VALUE:"wandoujia"]
}
xiaomi{
manifestPlaceholders=[UMENG_CHANNEL_VALUE:"xiaomi"]
}
}
productFlavors在android级别下,与buildTypes同级。
这是豌豆荚和小米两个渠道,如果渠道很多那我们这样一个一个写是不是太费劲?往下看:
productFlavors{
yingyongbao{}
wandoujia{}
baidu{}
xiaomi{}
c360{}
uc{}
huawei{}
oppo{}
c91shouji{}
meizu{}
productFlavors.all{ flavor->
flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE:name]
}
}
这是另一种方式,如果渠道包过多,推荐这一方式。
步骤三
接下来就可以打包了:Build ->Generate Signed Bundle/APK...
选择APK,然后输入我们的签名文件,如果没有签名文件先去生成签名文件。
选择我们的渠道包。然后记得将V1,V2全部勾选哦~然后点击Finish等待即可。
如果报错:
他说我们的flavor dimension维度不统一,我们在android下的defaultConfig中添加:
flavorDimensions"versionCode" 就可以了
完成后,去我们项目的app文件下去查看,如图:
这样多渠道打包就完成了。
如果你还想对apk包的名称进行修改的话,如下:
//更改apk包名称:下面格式:Xtan_版本号_渠道_时间.apk
android.applicationVariants.all{variant->
variant.outputs.all{
outputFileName="Xtan_${defaultConfig.versionName}_${variant.productFlavors[0].name}_${createTime()}.apk"
}
}
其中的时间为:
def createTime() {
return new Date().format("yyyyMMddHHmm", TimeZone.default)
}
这样再生成的apk包就是我们想要的格式了,如图:
哈哈,讲解的还算详细?点赞转发~