资讯专栏INFORMATION COLUMN

用gradle自动配置百度地图Key

liukai90 / 1229人阅读

摘要:在开发中需要使用百度地图,百度地图会需要有两个和需要使用对应的签名证书的在百度地图的开发平台上申请。使用一个同一个把一个已经生成百度地图的签名证书提交到版本库中,指定每个开发者使用这个签名证书。

在开发中需要使用百度地图,百度地图会需要有两个key:releasedebug,需要使用对应的签名证书的SHA1在百度地图的开发平台上申请(http://lbsyun.baidu.com/apiconsole/key)。
获取签名证书SHA1的方式:
cd到.android所在的目录:

keytool -list -v -keystore debug.keystore

同样的方式可以到release签名证书的SHA1。
现在我们就有了两个百度地图的key:release-keydebug-key
一般情况需要在AndroidManifest指定对于的百度地图的key才能在APP中正确的显示百度地图。

        

这里有产生两个用的时候很不方便的问题:

1.每个开发者都有一个debug的签名证书,每个人都需要申请一个百度地图key,每个人都需要配置。
2.在编译reasle的时候需要切换把`com.baidu.lbsapi.API_KEY`换成release-key

解决这两个问题可以通过强大的gradle,实现无缝的自动的在项目中配置release-key和debug-key。

使用一个同一个debug-key

把一个已经生成百度地图key的debug签名证书提交到版本库中,指定每个开发者使用这个签名证书debug。

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"
      signingConfigs {
        release {
            storeFile file("${rootDir}/release")
            storePassword ""
            keyAlias ""
            keyPassword ""
        }
        debug {
            storeFile file("${rootDir}/debug.keystore")
        }
    }
    sourceSets {
        main {
            jni.srcDirs = []
        }
    }
    }

androidsigningConfigs中可以配置release的签名证书和debug的签名证书,一般都是指定release的签名证书,这里也指定下debug的签名证书,${rootDir}是当前项目的主目录,这样就指定了所有的开发人员都使用一个debug签名证书。
在配置com.baidu.lbsapi.API_KEY的时候只需要配置一个debug-key就可以了。

自动切换reasle-key和debug-key

虽然设置了com.baidu.lbsapi.API_KEY为debug-key但是在发布项目的时候还需要重新设置为reasle-key,这样的操作不仅麻烦而且还容易出错,经常出现发布之后的版本百度地图无法显示,因为使用了reasle的签名证书,却没有使用reasle-key。
下面使用gradle让项目自动的切换reasle-key和debug-key,在发布版本的时候不需要再重新配置。
AndroidManifast.xml中配置:

         

这里给com.baidu.lbsapi.API_KEY的value设置了一个变量BAIDU_KEY_VALUE

build.gradle中给BAIDU_KEY_VALUE赋值:

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"
    
     buildTypes {
        release {     
            manifestPlaceholders = [BAIDU_KEY_VALUE: "release-key"]
        }
        debug {
            manifestPlaceholders = [BAIDU_KEY_VALUE: "debug-key"]
        }
    }
}

manifestPlaceholders是gradle的一个功能,可以在AndroidManifest中定义一个变量,定义的语法是${BAIDU_KEY_VALUE},在build.gradle中可以给这里变量赋值,这个语法使用方便,语法简单。
这样在运行项目的时候在debug中就会使用百度地图的debug-key,在发布的时候就会使用百度地图的realest-key,不再需要手动切换。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/12603.html

相关文章

  • Android Studio导入并显示国内地图SDK步骤对比以及需要注意的点(百度地图和高德地图为例

    摘要:本文为第一次导入地图类,以百度地图和高德地图为例,腾讯地图后续加入。高德或百度地图高德或百度地图高德或百度地图百度地图独有管理地图生命周期合理管理地图生命周期。 本文为第一次导入地图类SDK,以百度地图和高德地图为例,腾讯地图后续加入。本文若有不当之处以及勘误,欢迎留言指正。 百度和高德地图开放平台官网链接 百度地图开放平台 高德开放平台 步骤 1.获取KEY 在相应的国内SDK开发者...

    cyrils 评论0 收藏0
  • Android Studio导入并显示国内地图SDK步骤对比以及需要注意的点(百度地图和高德地图为例

    摘要:本文为第一次导入地图类,以百度地图和高德地图为例,腾讯地图后续加入。高德或百度地图高德或百度地图高德或百度地图百度地图独有管理地图生命周期合理管理地图生命周期。 本文为第一次导入地图类SDK,以百度地图和高德地图为例,腾讯地图后续加入。本文若有不当之处以及勘误,欢迎留言指正。 百度和高德地图开放平台官网链接 百度地图开放平台 高德开放平台 步骤 1.获取KEY 在相应的国内SDK开发者...

    lavor 评论0 收藏0
  • Android Studio导入并显示国内地图SDK步骤对比以及需要注意的点(百度地图和高德地图为例

    摘要:本文为第一次导入地图类,以百度地图和高德地图为例,腾讯地图后续加入。高德或百度地图高德或百度地图高德或百度地图百度地图独有管理地图生命周期合理管理地图生命周期。 本文为第一次导入地图类SDK,以百度地图和高德地图为例,腾讯地图后续加入。本文若有不当之处以及勘误,欢迎留言指正。 百度和高德地图开放平台官网链接 百度地图开放平台 高德开放平台 步骤 1.获取KEY 在相应的国内SDK开发者...

    xiangchaobin 评论0 收藏0
  • Gradle实战:不同编译类型的包同设备共存

    摘要:二实践基本概念在上一篇文章实际应用一批量打包中我们已经介绍过的概念,本文主要通过这三个参数来实现多包共存。试想,我们能否修改百度地图验证时上传的包名呢然而,经过一番努力,查看了百度地图包,我们无法实现这一点。 查看原文:http://blog.csdn.net/u0108184... Gradle实战系列文章: 《Gradle基本知识点与常用配置》《Gradle实战:Android多...

    Towers 评论0 收藏0
  • 程序中使百度地图

    摘要:在程序中使用百度地图提供的功能之前需要做以下的准备工作申请这一步会用到工程的,主要用于数字签名算法。在程序中使用百度地图提供的功能之前需要做以下的准备工作 1.申请 API Key http://lbsyun.baidu.com/index.php?title=androidsdk/guide/create-project/ak   这一步会用到工程的SHA1,主要用于数字签名算法。    ...

    dunizb 评论0 收藏0

发表评论

0条评论

liukai90

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<