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的

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容