多渠道打包正式签名APK

在清单文件中进行配置

data
        android:name="UMENG_CHANNEL"
        android:value="${CHANNEL}" />

在gradle中配置

android {
    productFlavors {

        zj {
            manifestPlaceholders = [CHANNEL: "zj"]
        }

        xiaomi {
            manifestPlaceholders = [CHANNEL: "xiaomi"]
        }

        qh360 {
            manifestPlaceholders = [CHANNEL: "qh360"]
        }

        baidu {
            manifestPlaceholders = [CHANNEL: "baidu"]
        }

        wandoujia {
            manifestPlaceholders = [CHANNEL: "wandoujia"]
        }

    }
}

或者这样写

android {
    productFlavors {
        zj {}
        huawei {}
        xiaomi {}
//        qqyyb {}
//        wandoujia {}
//        baidu {}
//        qh360 {}
//        nduow {}
//        mumy {}
//        lenovo {}
//        oppo {}
//        vivo {}
//        samsung {}

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

打包的配置

android {
    signingConfigs {
        // your debug keystore
        debug {
            storeFile file("buglytestreleasekey.jks")
            storePassword "buglytestreleasekey"
            keyAlias "buglytestreleasekey"
            keyPassword "buglytestreleasekey"
        }

        release{
            storeFile file("buglytestreleasekey.jks")
            storePassword "buglytestreleasekey"
            keyAlias "buglytestreleasekey"
            keyPassword "buglytestreleasekey"
        }
    }

    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.release
        }

        debug {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.debug
        }
    }
}

编译打包

这样进行操作之后,不仅在平时运行的时候也可以生成正式包并运行,并且在打包的时候,也会生成不同渠道的正式签名包,与正常的操作基本上是一致的,只不过多渠道打包的时候特别慢,如果渠道包过多的话,那就需要很长的时间,因为他每次打包的时候,都相当于重新编译生成,所以生成的渠道包越多,需要的时间越长,除了系统提供的这个方法之外,还有其他的快速生成多渠道包的方案,其中一个就是美团的《一分钟900渠道包》,利用了一些特殊的方法进行快速打包,只是替换了其中的一些文件,从而避免了重新打包的耗时,之后,会在其他的博客中进行更新,敬请期待!

你可能感兴趣的:(android)