分享多渠道打包

废话少说直接上代码

1.清单文件

    在application节点下添加一个meta-data节点:


2.gradle文件

在adnroid{}下创建productFlavors {}

1.在productFlavors {}中添加渠道名称:default_360 {}、default_xiaomi {}等

2.在productFlavors {}后面添加一个渠道管理的方法

```java

productFlavors.all { flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]       }

```


3.

```java

buildTypes {

release {

            /* minifyEnabled false

              proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'*/


            // 是否进行混淆

            minifyEnabled false

            // 混淆文件的位置

            signingConfig signingConfigs.debug

            proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro'

            debuggable true

            proguardFile'keystory/jks文件的地址'

            android.applicationVariants.all { variant ->

            variant.outputs.all {

                  outputFileName ="apk名称_v${defaultConfig.versionName}_${releaseTime()}_${variant.productFlavors[0].name}.apk"

                }

        }

}

debug {

            minifyEnabled false

            signingConfig signingConfigs.debug

            proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro'

            debuggable true

            proguardFile'keystory/jks文件的地址'

        }

}

```

4.

```java

signingConfigs {

debug {

storeFile file('keystory/jks文件的地址')

storePassword "密码"

        keyAlias "与生成的keyAlias保持一致"

        keyPassword "密码"

    }

}

```

5. android{}节点外的 与3中的 apk名称的时间点调用的

```java

allprojects {

repositories {

mavenCentral()

}

}

def releaseTime() {

return new Date().format("yyyy-MM-dd", TimeZone.getTimeZone("UTC"))

}

```

你可能感兴趣的:(分享多渠道打包)