A* Error..: 230 ...: APP Scode码校

作者: _ming_ming | 来源:发表于2016-05-04 23:52 被阅读356次

    这几天想用百度地图定位来装装逼,没想到就遇上了230这个error。
    先说说百度地图的流程吧,梳理下思路。
    第一步,在http://lbsyun.baidu.com上登录。(没账号就去注册一个,很快的)
    第二步,选相应的平台进行开发。因为我是android粉,所以就选择了android地图SDK->获取密钥
    第三步,获取相应的SHA1和包名组成安全码,为了唯一认证标志使用,也避免恶意开发者对百度地图服务进行攻击。
    第四步:包名可以根据自己的喜好,只要符合命名规范即可。
    获取SHA1就坑了。一开始我想到win10右键有个自带的SHA1,然而网页老是报错,说不符合。
    后来百度,google下,android studio左下角有个terminal

    1、打开Android Studio的Tools->Open Terminal...
    2、输入命令:keytool -v -list -keystore keystore.jks
    输入密钥库口令(默认是android)
    如果之前有create key,密钥库口令就是key的passowrd。
    然后我就高高兴兴用百度地图的demo,结果全是网格,查看log,发现230error。
    就是告诉我们,我们提供的包名和SHA1不匹配。
    然后就各种改包名啦,grade的applicationId啦。
    后来根据http://bbs.lbsyun.baidu.com/forum.php?mod=viewthread&tid=106461
    安装安全码校对工具apk,打开应用后,找到自己开发的APP(默认最新安装的APP排在最上面),点击后会弹出对话框显示包名和SHA1值。惊奇发现原来是SHA1问题,吓死我了。
    果不其然,在开发者平台改了SHA1后,就可以显示地图了(当前默认是北京)。
    为什么在android studio的获取的SHA1和验证工具获取的SHA1不同呢。
    别忘了,apk有release和debug两个不同的版本。
    在真机调试的情况下,我们百度应用是debug(测试)版
    而在android studio的key.jks获取的是release(正式)版的SHA1
    所以就导致了230error.
    深入分析:
    很多开发者都有debug版和release版签名文件分别进行apk打包,如果你此刻安装的app是
    debug版签名文件打包的,此处获取到的就是
    debug版的SHA1;
    相反如果你安装的app是release版签名文件打包的,此处获取到的就是release版的SHA1。API控制台中,debug版签名文件对应的SHA1值填入"开发版SHA1"中;同理,release版签名文件
    对应的SHA1值填入"发布版SHA1"中,这样能保证开发和测试的时候使用同一个AK即可

    debug版签名文件:

    是指在开发过程中从Android Studio或者Eclipse中直接调试运行的apk使用的签名文件,一般是开发工具自动处理的。

    release版签名文件:

    是指在提交测试或发布时候,选择指定的签名文件进行打包的签名文件,一般同一个APP使用一个统一的签名文件。

    相关文章

      网友评论

        本文标题:A* Error..: 230 ...: APP Scode码校

        本文链接:https://www.haomeiwen.com/subject/asfdrttx.html