Android 命令行打包可选择环境

661 阅读1分钟

在项目开发过程中,一般由程序员完成开发工作后,将代码提交到git上,测试 同学pull代码后,项目build.gradle中设置如下代码

buildTypes {

        release {
            def env = project.hasProperty('ENV')?ENV:"PRODUCT"
            minifyEnabled true
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard.cfg'
            buildConfigField("String", "BUILD_ENV", "\"$env\"")
            printf('------>ENV = '+env)
            zipAlignEnabled true
            signingConfig signingConfigs.release
        }
        debug {
            def env = project.hasProperty('ENV')?ENV:"TEST"
            minifyEnabled true
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard.cfg'
            buildConfigField("String", "BUILD_TIME", "\"${buildTime()}\"")
            buildConfigField("String", "BUILD_ENV", "\"$env\"")
            zipAlignEnabled true
            signingConfig signingConfigs.release
        }
    }

代码里可获取BUILD_ENV的值

if("PRODUCT".equals(BuildConfig.BUILD_ENV)){
    //生产环境
}else if("TEST".equals(BuildConfig.BUILD_ENV)){
    //测试环境
}

打包命令

gradle clean assemblerelease -PENV=PRODUCT
gradle clean assemblerelease -PENV=TEST
gradle clean assembledebug -PENV=TEST
gradle clean assembledebug -PENV=TEST