分享多渠道打包

废话少说直接上代码

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"))

}

```

推荐阅读更多精彩内容

  • 写《村里最悲伤的姑娘,叫小芳》的时候,就想到了这个大唐艳遇故事。 故事的男主人公,叫元稹。 粗通诗词的人都知道"曾...
    涓子Fiona阅读 807评论 8 51
  • 我原想过会多么悲伤、痛苦得一个人无法独自承受,我却没想到它消失如此之快,以至于我还没意识到就已经忘却它的存在了。
    Beijing阅读 606评论 0 1
  • 昨晚自己点穴出丑的事情韩萧萧没有忘记,此时他可不敢再亮出自己那拙劣的点穴手法了。寂无名也摇了摇头。韩萧萧露出很惊讶...
    卧龙镇吟阅读 123评论 0 0