Android开发的小伙伴们肯定会用到百度地图或者高德地图的API,都需要输入开发版的SHA1和发布版的SHA1,我第一次接触SHA1的时候,通过百度地图给的教程通过命令窗口顺利获取SHA1,由于开发版SHA1不是必填项,所以直接将获取的SHA1复制到了发布版SHA1的输入框,like this。
当时并不知道通过这种方式获取的SHA1其实是开发版,也就是debug版,再输入包名,获取应用AK后继续开发功能,貌似一切正常,但是当用正式版的签名文件签名打包后,百度地图无法获取定位信息,提示应用AK出错,检查百度获取的AK,没有问题呀,百思不得其解,坐下来静静的抽了根烟,来了段freestyle,想想,百度既然把SHA1分为开发版和发布版,一定是有原因的,经过查阅资料,加上自己的猜想,SHA1和签名文件有关,同一台电脑通过命令窗口获取的SHA1是一样的,因为开发过程中是用同一个debug签名文件签名打包的,当正式发布的时候,我们用的是正式的签名文件打包的,因为不同签名文件的SHA1是不一样的,所以当正式签名打包后,用的还是开发版SHA1申请的百度应用AK,所以,问题就出现了。
通过网络搜索,不难找到获取开发版和发布版SHA1的教程,大多都是通过命令窗口获取的,对于一些入门开发者,通过命令窗口获取SHA1,稍微有点麻烦,所以,闲暇时间,自己写了一个获取SHA1的小demo,首先安装debug版apk或者正式版apk,主页面获取手机安装的第三方应用APP,点击需要获取SHA1的APP条目,弹出该应用的基本信息和debug版SHA1或者正式版SHA1,SHA1的版本取决于apk是用debug版签名打包的还是正式版签名打包的,然后点击右上角的分享,分享到电脑,perfect。
本人菜鸟一枚,有什么解释不对还望各位大神指正,如果这个方法没有问题,希望帮助更多的Android开发者,下面附上该demo的
GitHub地址:GetSHA1
APK地址:网盘地址