安卓签名文件的理解和使用

很多时候开发者是需要签名文件里的MD5,调试版以及发布版的SHA1的值来进行一些操作的。

首先我们要生成一个打包签名。在Android studio里生成非常的简单,可点击链接:详细生成签名文件的教程。而本文主要讲的是如何获取和正确使用jks文件。

一、能否共用一个签名文件

很多人有个习惯,来了一个新项目的时候用的打包签名是从上一个项目里copy出来的 。这样就会出现两个项目,不同包名,用一个签名文件。
应用A(包名com.test.A)+ 签名(keyOne.jks)—>打包 
应用B (包名com.test.B) +签名(keyOne.jks)—>打包
这个情况下 就是 需要不同的应用ab 有不同的签名了 不能通用 ,他们的包名不一样 你在打包的时候他们的签名也是不一样的 那你都用一个 就会有一个因为 签名不和他自己实际的包名匹配 就造成分享不出去的情况了。
所以大家还是老老实实的一个新的项目就创建一个jks。这样为以后的使用也带来方便。在使用这句话时keytool -v -list -keystore xxx.jks确保生成的发布版SHA1值不同,且包名不同,这样在使用第三方登录或分享的时候才能正常使用。

二、需要打包才能进行测试的功能怎么办

这个问题大家比较常见,比如微信登录功能的开发,就是需要在应用拥有签名之后才能测试微信登录的功能是否正常,而我们正常的run/debug时install到手机的应用是不含有签名的。这时候我们只需要配置一下就行,不需要一遍遍的生成安装包再去测试。
signingConfigs {
config {
keyAlias '
xxx'
keyPassword '
123456'
storeFile file('C:/Users/Dr. Zhu/.android/
xxx.keystore')
storePassword '
123456'
}
}
这样配置之后就可以直接在debug模式下拥有签名了,就可以快速的进行第三方分享或登录的开发。

三、SHA1值的问题

很多人不明白这个东西为什么会有两个。现在解释一下SHA1的debug值是根据你自身jdk去生成的,一般不会变,除非你换电脑了。而SHA1的发布值,注意是发布值,是必须要通过Android stuido生成的jks文件在cmd里面输入:keytool -v -list -keystore xxx.jks去查看的。也就是说必须现有你这个项目的jks文件才能出现SHA1值。而自身项目的jks文件是和自身包名相关的,所以发布版的SHA1的值全世界只有一个,具有唯一标识性。