签名与sha1 获取

1.签名作用:

一个Android项目可以以它的包名作为唯一标识符,但是手机上的应用可能不止这一个应用,如果手机上有两个应用恰好使用了同一个包名,那么其中一个应用程序就会覆盖另一个,为了避免这种情况的发生,Android要求对作为产品发布的应用程序进行签名。

因此,签名有以下两个作用:

1,确定发布者的身份,确定发布者的身份信息。

2,确保应用的完整性,签名会对应用程序中的所有文件进行保护,从而确保应用程序中的所有文件不会被替换。

正是因为有了签名,别人才无法冒名顶替你,当然你的应用程序也就无法冒名顶替别人。

签名使用数字证书来签名的。所以,在进行签名之前我们必须先产生数字证书,

1,点击Android studio主菜单栏Build——>Generate Signed APK之后弹出如下菜单:

2,如果你还没有数字证书,那么就点击Create new…这个按钮生成一个数字证书,这个数字证书包含了开发人员所有的身份信息。注意最下面会有一个填写签名文件的名称的填空,后缀必须是jks类型。

如上图:第一行是选择产生签名文件的存放路径,为好好找,我在这里直接存放在桌面的一个文件夹里面,第二行是数字证书的密码,第三行是别名,我起的别名是我的名字的缩写,第四行是密码,以上的信息都是要记号不能忘记的。下面的那些都是你的名字,国家代号什么得,可以随便填。

3,点击确定之后然后在第一个图片里面自动填写上刚才产生的数字证书的密码和别名,next之后出现:

第一行使用选择数字证书的存放路径,然会点击完成就可以了。

2.调试版与发布版签名

1.调试版

1.安卓系统要求必须只有签名后的ApK文件才可以安装,所以APK文件必须进行签名。
至于在模拟机上的程序为什么不经过签名就可以安装,是因为如果你不指定签名文件的话,会默认使用 as的默认签名文件,也就是
C:\Users\用户名.android\debug.keystore
所有程序在模拟机上运行时候 如果不指定签名文件,都用的是这个签名文件。

获取调试版sha1

法一:

Android Studio获取SHA1值
强大的Android Studio为我们提供了Terminal这个工具,我们可以通过他进行相应命令从而获取所需内容。

Java中提供了Keytool工具去让我们管理证书,那么接下来我们将通过他获取我们所需要的SHA1值。

使用命令如下:

keytool -list -v -keystore 证书地址

PS:如果需要获取debug版本的证书,按如下例子查找即可

keytool -list -v -keystore C:\Users\用户名\ .android\debug.keystore

默认密码为:android

法二:

还有一种非常快捷可以查看debug的sha1值,感觉很方便:

MTK android11系统签名文件路径 android签名文件丢失_android studio


MTK android11系统签名文件路径 android签名文件丢失_数字证书_02


当你的AS版本为最新版时,你会发现这里好像有点不一样了,找不到signingReport了,这是AS更新之后默认这个功能关掉了,需要去手动打开它。在设置里面现在把这个勾选上的去掉,

MTK android11系统签名文件路径 android签名文件丢失_android_03

2.发布版

发布版就是需要你正式去生成签名文件,然后去查看其sha1,方法:

MTK android11系统签名文件路径 android签名文件丢失_android_04


在 " Key store path " 中 , 选择签名文件的生成路径

MTK android11系统签名文件路径 android签名文件丢失_ide_05

在弹出的对话框中 , 点击绿色的安卓图标 , 生成在工程根目录 ,

MTK android11系统签名文件路径 android签名文件丢失_android studio_06

MTK android11系统签名文件路径 android签名文件丢失_签名文件_07


签名文件两个密码的作用

红色矩形框内的密码是签名文件的密码 ;
也就是你在电脑上想查看这个文件具体内容,所需要的密码。即该文件是加密的,没密码不能查看。
想查看,参见文章:

蓝色矩形框内的别名和密码 , 是给 APK 签名的密码 ;

MTK android11系统签名文件路径 android签名文件丢失_android studio_08


获取sha1 注意事项:

jdk 得对。


————————————————

疑问:

1.生成签名时候 如果同时勾选 发布版和调试版,那么发布版和调试版也就是用同一个签名文件咯?

  1. signReport的作用:
    这是一个快键方式,点了后可以同时显示你该app发布版和调试版的签名文件信息

    否则你只能对两个签名文件进行
    keytool -list -v -keystore [签名文件路径]
    查看两次。这样就比较慢了。

但是默认情况下,恐怕是无法直接显示发布版签名文件的,我们需要进行一系列的配置,才可以通过点击这里看到发布版的信息。
参见文章:Android studio 中查询release和debug版本的SHA1和MD5


所以,现在获取sha1 应该是 调试版通过该快捷方式获得,而发布版则 通过命令:keytool -list -v -keystore [签名文件路径] 获得


生成了签名文件后
怎么用呢?

应该是
会生成一个 签名好的APK文件
signed APK

这个就涉及到怎么发布apk的问题了。查查

一般来讲,调试版签名文件就是为了在模拟机上跑
所以用默认的就行。

勾选记住密码,然后点击Next。

在这里插入图片描述

MTK android11系统签名文件路径 android签名文件丢失_ide_09

选择release,然后两个都勾选上,最后点击Finish。

在这里插入图片描述

当你看到AS的右下角出现这一提示时,就说明你的release包已经生成好了。

MTK android11系统签名文件路径 android签名文件丢失_签名文件_10

MTK android11系统签名文件路径 android签名文件丢失_数字证书_11

在你的AS中查看这个apk,你可以复制它通过电脑QQ发给你的手机,然后在手机上直接打开安装。
在这里插入图片描述