使用Gradle管理Debug/Release版本的Key

  在开发过程中经常会遇到debug/release版本中某个值需要动态改变方便开发和测试,就像BuildConfig的DEBUG一样,在debug版本中为true,release版本中为false,这样不用我们手动每次去修改,在开发过程中还是比较方便的。

 最近的工作中由于使用到了百度地图SDK,使用过百度地图SDK的人可能知道百度给我的Key是根据我们的秘钥sha1和包名生成的,所以这样就产生了一个问题,当我们打包debug和release包时需要不同的key,或者使用gradle productFlavors修改applicationId同时打多个不同版本的包时,每个版本包的key是不同的,这就需要我们动态设置key

所以我们的需求是

debug:key=1234
release:key=56789

这样我们就不用每次修改Key再去打包了,那如何实现呢?

1.在AndroidManifest.xml设置占位

<meta-data
        android:name="com.baidu.lbsapi.API_KEY"
        android:value="${baiduMapKey}"/>

${baiduMapKey} baiduMapKey这个值是动态的,需要我们设置

2.在build.gradle中设置Debug/Release的baiduMapKey

buildTypes {
    debug {
        manifestPlaceholders = [baiduMapKey: "1234"]
    }

    release {
        manifestPlaceholders = [baiduMapKey: "5678"]
   
    }
}

3.执行gradlew assembleDebug/assembleRelease

这个时候的debug版本key=1234
release版本key=5678

就这么简单的完事了,是不是很简单方便

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

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,896评论 18 139
  • 1.介绍 如果你正在查阅build.gradle文件的所有可选项,请点击这里进行查阅:DSL参考 1.1新构建系统...
    Chuckiefan阅读 12,171评论 8 72
  • 转载注明出处:http://www.jianshu.com/p/5255b100930e 0. 前言 完全由个人翻...
    王三的猫阿德阅读 2,554评论 0 4
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,192评论 25 708
  • 孤伴长夜,白月苒苒 视,孤杯寒月 琥珀寒光 满是踌躇心 逼问自己回忆是否忘记 思念,毒药似得 疯了一样,占领了你的...
    魇客阅读 239评论 0 5