Android 一键多渠道打包

Gradle中添加如下代码

//lint配置
    lintOptions {
        checkReleaseBuilds false
        abortOnError false
        ignoreWarnings true
    }

    //需要打包的渠道列表
    productFlavors {
        _360 {}//360
        _91 {}//91
        QQ {}//应用宝
        baidu {}//百度
        //可自行添加跟多
    }

    //动态修改配置文件中的渠道号对应的字段(JPUSH_CHANNEL:代表极光的渠道号字段可根据不同SDK修改)
    productFlavors.all { flavor ->
        flavor.manifestPlaceholders = [JPUSH_CHANNEL: name]
    }

备注:添加位置在如下结构中

android {
         //需要添加代码的位置
}

配置签名文件

备注:签名文件为相对路径,配置位置同上

   signingConfigs {
        release {
            storeFile file("bee_key.jks")
            storePassword "XXXXXXX"
            keyAlias "XX"
            keyPassword "XXXXXXXX"
        }
    }

在buildTypes函数模块中添加如下代码

   signingConfig signingConfigs.release

            //打包命名
            applicationVariants.all { variant ->
                variant.outputs.each { output ->
                    if (variant.buildType.name == 'release') {
                        variant.mergedFlavor.versionCode = getVersionCode()
                        variant.mergedFlavor.versionName = getVersionName()
                        def appid=getApplicationId()

                        // release
                        def apkName = "${appid}_${releaseTime()}_${variant.productFlavors[0].name}.apk"
                        output.outputFile = new File(output.outputFile.parent, apkName)
                    }
                }
            }

添加一个时间函数 在打包命令是要用

def releaseTime() {
    return new Date().format("yyyy-MM-dd HH-mm-ss", TimeZone.getTimeZone("GMT+8"))
}

备注:函数添加位置在android 函数模块的外部

你可能感兴趣的:(Android 一键多渠道打包)