[图片上传中。。。(1)]一步AS获取MD5,SHA1值:
打开项目后,右侧Grade里,项目名称->Tasks->android->signingReport,双击一下。下方会跳出对应的MD5,SHA1值
SHA1的使用区别
我们在使用像高德、友盟这种第三方时,会遇到让我们填写SHA1值以生成对应的key。
这个时候我要提供的SHA1值就有两个了。即debug测试下的和release发布下的。
如果说我们使用的是debug测试下的SHA1值,则,当我不在当前的电脑上安装app。使用别的电脑装。则会使程序无法正常的使用。
举个例子:高德的定位,如果我使用debug测试下的SHA1值。那么和我一起合作开发的同事,他在他的电脑上使用时,则无法正常的显示定位。所以,我要做的就是使用release发布下的SHA1值去申请key,以提供给同事让他能去单独开发。
所以:如果是合作开发就是先打包,用正式的key。单独开发可以先用debug的,再准备发布时,换成打包后的正式的。
打包后怎么获取sha1值呢?其实我这个打包后获取sha1值,其实是指生成了jks签名文件。即密钥名.keystore
那我们怎么通过密钥名.keystore得到SHA1呢。这里我就要介绍一种通过as的Terminal的方式用命令行来得到:
1、打开android studio 找到Terminal并打开,或者在最下面找到Terminal 如下图:
2、输入命令 keytool -list -v -keystore 文件目录\自己的签名文件 比如我的:keytool -list -v -keystore C:\Users\dell.android\rcjs.keystore ,接着按回车,然后输入密钥库密码:(debug下的测试SHA1值也可以通过代码行来得到,这个时候目录为C:\Users\dell.android,签名文件 为debug.keystore,debug.keystore的密钥库密码是没有。可以直接回车进入) 回车(密钥库口令是看不到的)如下图:
这样就能通过jks签名文件成功获取到SHA1值了。发布版的,就是不用debug.keystore而是用自己生成的keystore。
综上:
1、三方 默认 使用两个 SHA1 值来生成key
一个正式 --> 让其他开发者,通过打正式包的形式 使用三方的功能.
一个测试 --> 测试的SHA1 值 会让改值的开发者使用run 来使用功能
所以,如果是合作开发最好先打包,用正式的key。单独开发两者皆可,为了测试可以先用debug的,再准备发布时,换成打包后的正式的。
2、要得到正式的SHA1值,可通过Terminal用命令行获得。
要得到测试的SHA1值,可通过Grade生成,也可以用Terminal的命令行获得。