前言
Android应用必须进行
数字签名
才可以发布,也就是我们平时所说的使用证书打包然后上传市场,其中数字证书的私钥由应用开发者持有。
生成签名的方式有很多种,今天我们来讲如何通过AS创建签名流程。
一、创建keystore签名文件
1、在菜单栏中,依次点击 Build - Generate Signed Bundle/Apk...(生成签名)
![](https://img.haomeiwen.com/i9637332/edb13f50f1c51331.png)
2、选择 APK 选项,点击按钮 Next 到下一步
![](https://img.haomeiwen.com/i9637332/fcf81b5995e0fa94.jpg)
3、新建key store秘钥文件,点击按钮 Next 到下一步
![](https://img.haomeiwen.com/i9637332/92848a01b9072fad.jpg)
4、按如下提示填写信息,点击按钮 Next 到下一步
![](https://img.haomeiwen.com/i9637332/ee032d76bf3f64ef.jpg)
5、签名生成完成,勾选记住密码,方便下次打包
![](https://img.haomeiwen.com/i9637332/493d9866b51806b7.jpg)
6、勾选签名效验方式,选择要打包的环境,点击按钮 Next 开始打包
![](https://img.haomeiwen.com/i9637332/89c546e833b6ae95.jpg)
7、见到如下提示,说明打包成功
![](https://img.haomeiwen.com/i9637332/c0cd6be788ee1f1a.jpg)
二、获取签名文件的配置信息
终端执行如下命令:
keytool -list -v -keystore 你的keystore文件的绝对路径
输入 keystore 的密码后,就可以在终端上看到 keystore 签名文件的配置信息了,如下图所示
![](https://img.haomeiwen.com/i9637332/86739844a83cc471.jpg)
三、项目中配置签名信息
1、在菜单栏中,依次点击 File - Project Structure
![](https://img.haomeiwen.com/i9637332/eec6b72ac21e1d3d.png)
2、依次点击 Module - app - Signing Configs - +
,然后添加刚才生成的正式签名
![](https://img.haomeiwen.com/i9637332/dc6e159612a2ee3d.png)
3、点击Apply ,再点击ok,完成添加配置
![](https://img.haomeiwen.com/i9637332/ed75f33fc927456b.jpg)
4、点击按钮 ok 后,Android Studio 会自动在app模块的build.gradle中添加签名信息,如下图所示
![](https://img.haomeiwen.com/i9637332/40620e1ce7e41d19.jpg)
5、签名配置成功后,把签名文件和环境关联,参照1流程,在Build Types里面进行设置
![](https://img.haomeiwen.com/i9637332/a1f4122e61b7cd96.jpg)
四、验证签名是否成功
方法一(keytool,只支持V1签名校验)
进入JDK/bin, 输入命令
keytool -printcert -jarfile xxx.apk (显示签名证书信息)
参数:
-printcert 打印证书内容
-jarfile <filename> 已签名的jar文件 或apk文件
方法二(apksigner,支持V1和V2签名校验)
进入Android SDK/build-tools/SDK版本, 输入命令
apksigner verify -v --print-certs xxx.apk
参数:
-v, --verbose 显示详情(显示是否使用V1和V2签名)
--print-certs 显示签名证书信息
第一步我们在生成签名后,在指定文件夹下生成了一个 release 版的 apk 包,现在我们用方法二验证APK的证书链,在终端输入如下命令:
apksigner verify -v --print-certs 安装包路径.apk
输入 以上命令后,就可以在终端上看到 keystore 签名文件的配置信息了,如下图所示
![](https://img.haomeiwen.com/i9637332/1263ed18c8f36646.jpg)
原创文章,有什么不对的地方欢迎指正,一起进步!
网友评论