android studio更新之后打包遇到V1(Jar Signature) V2(Full APK Signature)问题

眼前多少难甘事,自古男儿当自强。这篇文章主要讲述android studio更新之后打包遇到V1(Jar Signature) V2(Full APK Signature)问题相关的知识,希望能为你提供帮助。
昨天更新了android studio 打包时遇到两个勾选框,于是开始了解…
问题
【android studio更新之后打包遇到V1(Jar Signature) V2(Full APK Signature)问题】刚开始默认是勾选 V2(Full APK Signature),然后我就打包去测试先了,发现安装失败。之后发现与签名有关系。

发现
android 7.0中引入了APK Signature SchemeV2(Full APK Signature),V1(Jar Signature)来自JDK

两者区别
V1:仅验证未解压的文件内容,这样APK 签署后可进行许多修改 ,可以移动甚至重新压缩文件。
V2:验证压缩文件的所有字节,而不是单个 ZIP 条目,因此,在签名后无法再更改(包括 zipalign)。 正因如此,现在在编译过程中,我们将压缩、调整和签署合并成一步完成。
V2的好处:更安全而且新的签名可缩短在设备上进行验证的时间(不需要费时地解压缩然后验证), 从而加快应用安装速度。如有任何自定义任务篡改 APK 文件或对其进行后处理(无论以任何方式), 那么V2 签名会有作废的风险,从而导致您的 APK 与 Android 7.0 及更高版本不兼容。

 
如何使用
1、打包签名时只勾选V1签名并不会影响什么,但是在7.0上不会使用更安全的验证方式; 
2、只勾选V2签名7.0以下会直接安装完显示未安装,7.0以上则使用了V2的方式验证 
3、同时勾选V1和V2则所有机型都没问题.

温馨提示

//为了方便我们每次打包,我们可以设置每次打包默认两个都勾选。在app所对应的build.gradle添加如下配置, //再sync Now即可signingConfigs { debug { v1SigningEnabled true v2SigningEnabled true } release { v1SigningEnabled true v2SigningEnabled true } }

   
//为了方便我们每次打包,我们可以设置每次打包默认两个都勾选。在app所对应的build.gradle添加如下配置,

//再sync Now即可

signingConfigs {

    debug {

        v1SigningEnabled true

        v2SigningEnabled true

  }

    release {

        v1SigningEnabled true

        v2SigningEnabled true

  }

}

   
       


来自为知笔记(Wiz)











    推荐阅读