天天看点

Android 百度地图SHA1签名的问题Android 百度地图SHA1

Android 百度地图SHA1

基本情况

最近接管了一个App的开发,其中需要接入百度地图的API,百度地图的API具体的使用方法参考官方文档, 主要是要了解其中的签名问题,否则签名出问题则无法正常使用百度地图的API。

我们在开发app过程中,会有开发状态(debug)和发布状态(release)。百度地图API需要这两个状态对应的SHA1值,否则无法使用。而API控制台的发布版SHA1是必填项。

Android 百度地图SHA1签名的问题Android 百度地图SHA1

debug

一个app必须进行签名才能安装在手机上(包括真机或模拟器)。开发、debug过程中,Android Studio会使用 /.android 目录下的debug.keystone对app进行签名,所以此时app才能安装成功,所以,百度地图的API控制台中的开发版SHA1(上图),则填入debug.keystone的SHA1值。如何获取SHA1值?

keytool -list -v -keystore debug.keystore
           

执行之后如图:

Android 百度地图SHA1签名的问题Android 百度地图SHA1

其中的SHA1值表示我们需要填入的值。

release

当App开发完成,需要将App进行发布,发布也需要填入SHA1值到百度地图的API控制台,通过Android Studio的Build - Generate Signed APK来签名发布我们的App。

该方式需要签名文件YOUR_FILE_NAME.jks,如果没有则create new,生成之后,同理对该文件执行生成签名信息的命令:

keytool -list -v -keystore YOUR_FILE_NAME.jks
           

获取YOUR_FILE_NAME.jks的SHA1值,填入到API控制台,则发布的APP便能够使用百度地图的API。

问题

Authentication Error errorcode:  uid: - appid - msg: APP Scode码校验失败
           

该问题主要是由于百度地图SHA1签名没有填写正确的原因,按照以上方式正确填写便能够解决。