android_gradle_区分环境打包_可同时安装在一部手机

一般公司开发有许多种环境,至少接口请求前缀会不同,存在测试环境和线上环境,另外可能还有许多不同的配置,如下配置可使app使用不同配置打包。

android{

...

buildTypes {

mytest {//测试环境

            manifestPlaceholders = [appname:"app测试版"]

            signingConfig signingConfigs.debug

            applicationIdSuffix '.mytest'//为applicationId添加后缀,这样可以多个版本一起安装在同一部手机

            buildConfigField" String","API_HOST","\"${props['mytest_host']}\""

            ...

            }

debug {//开发环境

            manifestPlaceholders = [appname:"app开发版"]

            signingConfig signingConfigs.debug

            applicationIdSuffix '.debug'

            buildConfigField "String","API_HOST","\"${props['debug_host']}\""

            ...

        }

release {

            manifestPlaceholders = [appnamee:"营销助手",JPUSH_PKGNAME:"com.ezr.assistant.sellerassistant"]

            signingConfig signingConfigs.release

            buildConfigField "String","API_HOST","\"${props['release_host']}\""

            ...

            minifyEnabled true//混淆

            zipAlignEnabled true //Zipalign优化

            shrinkResources true// 移除无用的resource文件

        }

    }

}

以上例子中的API_HOST使用的话BuildConfig.API_HOST即可在代码中取到其值,另外如果原来有使用BuildConfig.DEBUG的,如果多配了一个其它环境最好给用一个自己定义的量,因为BuildConfig.DEBUG在除debug环境以外是默认为false的

你可能感兴趣的:(android_gradle_区分环境打包_可同时安装在一部手机)