高德地图集成所遇的坑

INVALID_USER_SCODE报错

出现这个问题是因为生成keysha1和App使用的应用不一致。

官方操作

首先,我跟着官方介绍一波神操作,我使用的是官方提供的第三种方式,使用 keytool(jdk自带工具)获取 SHA1

1、运行进入控制台。

2、在弹出的控制台窗口中输入 cd .android 定位到 .android 文件夹。

3、继续在控制台输入命令。

调试版本使用 debug.keystore,命令为:keytool -list -v -keystore debug.keystore。 发布版本使用 apk 对应的 keystore,命令为:keytool -list -v -keystore apk 的 keystore 。

提示输入密钥库密码,开发模式默认密码是 android,发布模式的密码是为 apk 的 keystore 设置的密码。输入密钥后回车(如果没设置密码,可直接回车),此时可在控制台显示的信息中获取 Sha1 值,如下图所示:

说明:keystore 文件为 Android 签名证书文件。

参考链接

终极解决方法

跟着官方操作之后,发现依然报错INVALID_USER_SCODE验证不通过,分别使用debug.keystorekeystore中的SHA1也不可以,搞了半天,晚上回来后又仔细看了一下报错信息。

发现图中报错的SHA1和通过官方方式得到的SHA1是不一样的。也就是说当时App使用的这个SHA1,所以我们把此SHA1复制到高德地图管理台,然后生成Key即可解决问题。

谨记仔细看报错信息!

PS:虽然找到问题的解决方法,但是一直不能明白为什莫,两个SHA1会不一致,有明白的大神可以指点一下。

segmentfault文章地址 https://segmentfault.com/a/1190000015368789