现在的第三方应用大多需要应用签名来协助完成,如百度,微信等,如果签名证书数据对不上(SHA1值等),这些第三方库根本不会工作。
但是每个项目要求的签名证书都不尽一样,所以我们要针对不同的项目来配置最适合我们开发的debugkey;
通常我们要配置两个key:一个作为正式发包的证书使用,一个作为我们debug版本的来用;
Android对于debug版本的key有很多限制,如果不按照要求来做,就会出现报错:Keystore was tampered with, or password was incorrect
基于此,我们首先要生成正规的keystore:
一、eclipse中生成androidkeystore
建立任意一个android项目(例如:AntForAndroid)
右键AntForAndroid根目录弹出菜单->Android Tools -> ExportSigned Application Package...
Next>
选择“Create new keystore”并且保存在一个目录下面(本例子保存在项目跟目录下) 输入密码,然后next
填写一些信息,填写的Alias 和密码不要忘记了
这样在项目根目录下就生成以上流程产生的androids.keystore了
二、命令行生成keystore
dos下进入JDK的bin目录
运行如下命令:
keytool-genkey -alias android.keystore -keyalg RSA -validity 20000 -keystoreandroid.keystore
(-validity20000代表有效期天数),命令完成后,bin目录中会生成android.keystore
查看命令keytool -list -keystore"android.keystore" 输入你设置的keystore密码
以上生成的是正式的key,接下来我们将其复制一份,做debugkey用,并修改其信息:
1. 首先当然是先复制一份正式证书出来作为要修改为的临时调试证书。
2. 修改keystore密码的命令(keytool为JDK带的命令行工具):
keytool-storepasswd -keystore my.keystore
其中,my.keystore是复制出来的证书文件,执行后会提示输入证书的当前密码,和新密码以及重复新密码确认。这一步需要将密码改为android。
3. 修改keystore的alias:
keytool-changealias -keystore my.keystore -alias my_name -destalias androiddebugkey
这一步中,my_name是证书中当前的alias,-destalias指定的是要修改为的alias,这里按规矩来,改为androiddebugkey!这个命令会先后提示输入keystore的密码和当前alias的密码。
4. 修改alias的密码:
keytool-keypasswd -keystore my.keystore -alias androiddebugkey
这一步执行后会提示输入keystore密码,alias密码,然后提示输入新的alias密码,同样,按规矩来,改为android!
以上几个操作执行后,my.keystore就是符合规矩的debug keystore了,接着在Eclipse的ADT设置中选中这个custom debug keystore即可,如下:
同时还可以看到证书的MD5以及SHA1指纹。
PS:以上3步命令行并没有先后顺序。
然后再将debugkey导入window---preferences ----android –build就不会报错了;
记得第三方平台里面输入sha1和MD5的时候输入自己最新的key里面的信息。