一、签名文件的生成
1.打开Android Studio,新建一个项目,点击“Build” --》选择“Generate Signed APK”,如图:

2.点击“next”, 如图:

3.点击“Create new...”, 如图:

4.填写信息完毕,点击“ok”, 如图:

5.点击“next”, 如图:

- Build type --> debug版本
- BuildType --> release版本
- Signature Versions --> V1(jar Signature) :是通过ZIP条目进行验证,这样APK 签署后可进行许多修改 - 可以移动甚至重新压缩文件。
- Signature Versions --> V2(Full Apk Signature):Android 7.0 引入一项新的应用签名方案 APK Signature Scheme v2,验证压缩文件的所有字节,而不是单个 ZIP 条目,因此,在签名后无法再更改(包括 zipalign)。正因如此,现在在编译过程中,我们将压缩、调整和签署合并成一步完成。好处显而易见,更安全而且新的签名可缩短在设备上进行验证的时间(不需要费时地解压缩然后验证),从而加快应用安装速度。
Signature Versions配置方法一
勾选v1: 签名并不会影响什么,但是在7.0上不会使用更安全的验证方式,相当于官网解决方案。
勾选V2: 7.0以下系统直接提示安装失败或者安装包异常,7.0以上系统则会使用V2方式验证,安装速度更快
勾选V1和V2: 比较兼容的处理方式
Signature Versions配置方法二
在app的build.gradle的android
signingConfigs {
debug {
v1SigningEnabled true
v2SigningEnabled true
}
release {
v1SigningEnabled true
v2SigningEnabled true
}
}
但是:现在发布的应用一般都会先进行加固或者打渠道包,再签名才行。这就不符合V2签名的描叙了。V2在签名后无法再更改(包括zipalign),这样就会产生错误。
解决办法:
1.仅勾选V1,采用传统签名方案,最直接
2.美团Walle针对V2的签名方案的方案:https://github.com/Meituan-Dianping/walle
二、签名文件的配置
1.将刚才生成的gradledemo.jks拷贝到app目录下(这个是个人喜好,也可以将gradledemo.jks不放在项目的路径中进行配置),如图:

2.点击“File”,选择“Project Structure...”,如图

3.进行签名文件配置,如图

4.点击“OK”就完成签名的配置了,在module的build.gradle文件中就可以看到配置,如图

网友评论