每个安卓APP,都要签名证书才能安装在手机上,测试的应用有测试的签名证书,生产环境有生产环境的签名证书,在开发APP之前,我们首先生成一个用于该APP的签名证书,用于测试调试应用,像微信支付、分享、地图,这些等等都需要用到生产环境的签名证书。
生成 Android 签名文件,目前有两种一种是 eclipse 开发工具生成的后缀名 .keystore 签名文件,一种是Android studio 开发工具生成的后缀名.jks 签名文件,那它们有什么不同?
1.一个是 eclipse 生成的签名,用于eclipse 开发的APP应用打包
2.一个是 Android studio 就生成的签名,用于Android studio 开发的APP应用打包
eclipse 和 Android studio 都是用来开发安卓应用的工具,eclipse 因为各种原因被谷歌公司抛弃了, 谷歌公司推出新的 Android studio 安卓开发工具,更方便,更容易上手。
因为我们没有使用到Android studio 开发APP或用于离线打包APP, 所以.jks 签名比较少用。
目前我们比较常用的是 .keystore 因为很多第三方工具还是使用.keystore 来进行签名,像腾讯或360的应用加固,都是使用.keystore ,包括我们这里介绍的 DCloud 在线打包APP,也是使用 .keystore 来进行签名。
我们没有安装 eclipse 工具如何生成 .keystore 签名文件?
获取 .keystore 的步骤
一、安装 JDK ,JDK 是开发安卓的必须的组件,如果已安装过了,直接跳过, 如果没有安装 进入 Java JDK 官网下载 安装
二、用命令来生成 签名证书
首先找到安装的JDK 文件路径 ,例如:C:\Program Files\Java\jdk1.6.0_43 ,我安装在C盘下,找到 jdk1.6.0_43 文件夹下的 bin 文件夹里的 keytool.exe 文件,它就是用于生成密钥的程序。
打开命令cmd , 快捷键是win+r 输入cmd
如果不是C盘根目录,可以用输入 cd.. ,返回上一级到出现:C:>
然后进去JDK 文件: C:> cd C:\Program Files\Java\jdk1.6.0_43\bin 然后回车键,我的JDK安装在C盘Program Files下,如果你不是可以更改,然后进入到:C:Program FilesJava\jdk1.6.0_43\bin>
把比较常用的属性列出来,大家修改下,下面这段代码就可以直接使用了
keytool -genkey -alias domekey -keyalg RSA -keysize 1024 -keypass pwd123456 -validity 3500 -keystore c:\key\dome.keystore
属性 讲解 例子
-alias 键的别名,只有前八位字符有效。 domekey
-keyalg 产生键的加密算法。支持DSA和RSA。 RSA
-keypass 键的密码 pwd123456
-validity 键的有效期,单位:天 3500天
-keystore 键,存储的路径 c:\key\dome.keystore
-keysize 产生键的长度 1024
-keystore 存储的路径,例如:c:\key\dome.keystore ,C盘下要保证存在key文件夹,不如会报错,dome.keystore ,名称随便填写
3.在命令里 C:\Program Files\Java\jdk1.6.0_43\bin> keytool -genkey -alias domekey -keyalg RSA -keysize 1024 -keypass pwd123456 -validity 3500 -keystore c:\key\dome.keystore 然后回车键,会提示你输入密码,和一些相关信息,填完全,最后填写 Y 回车键确定就可以,此时在C:\key 目录下就会多一个 dome.keystore 签名文件,代表已经完成了。
上面填写的keypass 密钥密码是: pwd123456 ,接下来,输入命令后,提示输入的密码是查询密码,两个密码设置为一样就可以。
-keypass pwd123456
查看 keystore 信息
当我们想查看 keystore 的信息时,可以用命令:keytool -list -v -keystore 例如:
C:\Program Files\Java\jdk1.6.0_43\bin> keytool -list -v -keystore c:\key\dome.keystore
然后输入密码 ,就可以查看到信息
当我们的APP要使用到微信支付,或一些第三方地图时,需要用到签名算法,例如微信开发者中心,安卓APP就要填写应用签名,应用签名是:keystore 信息中的 MD5 信息,把 : 去掉,剩下应用签名:C7360B2AFC72F97F39C61EAB8A579FB
修改 keystore 的查询密码
当想更改ketstote 的密码时,可以用命令 : keytool -storepasswd -keystore 例如
C:\Program Files\Java\jdk1.6.0_43\bin> keytool -storepasswd -keystore c:\key\dome.keystore
会提示输入原来的密码,然后提示输入新的密码,重复输入密码,回车键就完成了。
修改 keystore 的alias密钥密码
如果需要修改alias密钥密码,可以用命令:
keytool -keypasswd -keystore c:\key\dome.keystore -alias domekey
-alias domekey,domekey 是原来填写的别名
首先输入,查询密码,验证通过后,要求输入原来的alias密钥密码,然后输入新密码,回车键完成
修改 keystore 的alias别名
当你需要修改别名时,可以用命令:
keytool -changealias -keystore c:\key\dome.keystore -alias domekey -destalias newkeyname
命令中的 domekey 是原来的别名,newkeyname 是新的别名称,需要输入查询密码和 alias密钥密码,输完回车键完成
当已生成keystore,请记录密码,免得后期时间长了,忘记了。