百度地图开发(1):申请开发秘钥相关

百度地图开发指南:http://lbsyun.baidu.com/index.php?title=androidsdk/guide/introduction

百度地图SDK下载:http://lbsyun.baidu.com/index.php?title=androidsdk/sdkandev-download

(1)根据开发指南提供的方法申请开发秘钥

如上,填写应用名称,暂时不知道这里的应用名称有何作用,虽然不会影响apk功能,但可能与apk在百度商店的发布有关,因此此处我还是写上了我将要编译出来的apk的名称。应用类型选择Android SDK。

接下来就是最为重要的数字签名(SHA1)和包名了,因为开发秘钥是由sha1和包名自动生成的,而apk也需要经过签名,这也是百度SDK能与每一个应用关联起来的原因(如果同一个开发者使用相同的SHA1和包名开发不同的应用,此时使用同一个开发秘钥应该也是可以的),所以这两个值一定要写对,如果没写对,则不会出现地图,而是网格线样式。并且会报如下所示的error:

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

包名不作赘述,SHA1的生成开发指南上提供了获取SHA1的方法,这里唯一需要说明的是Eclipse和Android studio是使用keystore进行签名的。而使用原始工程mm编译使用的是pk8, x509.pem进行签名的。因此二者生成的SHA1不一样,当我们使用原始工程编译时,需要先把pk8, x509.pem转换成keystore格式,再按照开发指南上的方式生成SHA1。

《把Android源码中的秘钥对转换为keystore的方法》

下面将演示如何使用命令行将android源码秘钥转换为keystore:

android.mk中使用platform签名

LOCAL_CERTIFICATE := platform

所以我们使用签名文件:
platform.pk8和platform.x509.pem

 把这两个文件从security中拷贝出来或者直接将命令行目录转到security目录

1.

openssl pkcs8 -inform DER -nocrypt -in platform.pk8 -out platform.pem

当前目录下生成platform.pem文件。
2.

openssl pkcs12 -export -in  platform.x509.pem -out platform.p12 -inkey  platform.pem -password pass:android -name androiddebugkey

当前目录下生成platform.p12文件。
3.

keytool -importkeystore -deststorepass android -destkeystore ./platform.jks -srckeystore ./platform.p12 -srcstoretype PKCS12 -srcstorepass android

当前目录下生成platform.jks文件,这就是转换后的keystore文件,我们可以直接命名为keystore。
4. 按照开发指南提供的命令获取SHA1值

keytool -list -v -keystore platform.jks

keytool是jdk的工具,如果加入到了环境变量中,则可以直接在当前目录的命令行使用。

如上,填写SHA1值和包名后点击提交则可生成对应的开发秘钥。

posted on 2016-03-30 17:48  Matrixin  阅读(1069)  评论(0编辑  收藏  举报

导航