android的多渠道打包

来源:互联网 发布:淘宝售后客服工作时间 编辑:程序博客网 时间:2024/04/29 08:04

这里我们是集成的友盟的sdk

1.添加对友盟库的依赖

2.就是在Manifest.xml去声明我们的APPKey,以及我们的渠道占位符。

3.在我们的build.gradle中动态替换掉我们的占位符value即可

4.就是在控制台使用我们的./gradlew assembleRelease去自动的打出我们所有渠道的包。(assembleDebug,assmblewandoujiaRelease

//<!--友盟统计相关的 --><meta-data    android:name="UMENG_APPKEY"    android:value="appkey"></meta-data><meta-data    android:name="UMENG_CHANNEL"    android:value="${UMENG_CHANNEL_VALUE}"> 这里用的一个占位符,表示可以多渠道打包,如果只打一个渠道就不用写占位符了</meta-data>


apply plugin: 'com.android.application'android {    compileSdkVersion 23    buildToolsVersion "23.0.2"    defaultConfig {        applicationId "com.best.zhengli"        minSdkVersion 9        targetSdkVersion 23        versionCode 1        versionName "1.0"        multiDexEnable true //突破应用方法数65535的一个限制        manifestPlaceholders = [UMENG_CHANNEL_CALUE:"umeng"]    }    buildTypes {        release {            minifyEnabled false //代码混淆            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'            //指定签名            signingConfig signingConfigs.release            //指定我们release包的输出文件名就是我们的渠道名字            applicationVariants.all{                variant -> variant.outputs.each{                    output ->def outFile = output.outputFile                        if(outFile != null && outFile.name.endsWith(".apk")){                            def fileName = "${variant.productFlavors[0].name}"+".apk"                            output.outputFile = new File(outFile.parent,fileName)                        }                }            }        }    }    //添加我们的签名文件配置    signingConfigs{        debug{}        release{            //先打包生成一个apk            //为我们的release包添加签名文件配置            storeFile file(com.jks)            storePassword "rq123456"            keyAlias "android"            keyPassword "rq123456"        }    }    //多渠道    productFlavors{        xiaomi{            //方法一        //    manifestPlaceholders = [UMENG_CHANNEL_VALUE:"xiaomi"]        }        wandoujia{            //方法一         //   manifestPlaceholders = [UMENG_CHANNEL_VALUE:"wandoujia"]        }    }    //通过脚本来获取全部的渠道(方法二)    productFlavors.all{        flavor ->flavor.manifestPlacehodlers = [UMENG_CHANNEL_VALUE:name]    }}dependencies {    compile fileTree(dir: 'libs', include: ['*.jar'])    compile 'com.android.support:appcompat-v7:23.1.0'}

0 0
原创粉丝点击