Google亲爹出了android studio2.3的正式版之后,正式启用了V2的签名方式,(好像2.2版本已经可以使用了,但我这边没有图了也就不去考证了),2.3版本使用V2的签名如图所示:
今天想到有这方面的需求,所以进行了一系列的测试,顺便写下来记录下。
当然了,码农都知道V2的签名方式是Android 7.0之后的签名方式,顾名思义:需要运行在7.0以后的手机上才能使用这种签名方式————虽然现在国内7.0的手机还是不多,但以后适配还是需要注意的,这里来说下使用V1和V2的签名之后会遇到的问题。
1.app没有适配7.0, targetSdkVersion设置小于24,使用V1的签名方式进行签名打包,安装在5.1和7.0的手机上
结果:这种情况是没有问题的
2.app适配7.0,targetSdkVersion设置25, 使用V1的签名方式进行签名打包,安装在5.1和7.0的手机上
结果:同样没有问题
3.app没有适配7.0, targetSdkVersion设置小于24,单独使用V2的签名方式进行签名打包,安装在5.1和7.0的手机上
结果:安装在7.0上是没有问题的,但安装在5.1上就会出现安装失败,找不到签名证书,如图所示:
4.app适配7.0,targetSdkVersion设置25, 单独使用V2的签名方式进行签名打包,安装在5.1和7.0的手机上
结果:安装在7.0上是没有问题的,但安装在5.1上就会出现安装失败,找不到签名证书
结论:单独使用V2签名的apk是不能在小于7.0的手机上安装的,会出现签名证书找不到的情况,为了防止出现这种情况,AS使用了可以同时选择两种签名方式
即:7.0以下使用V1的签名方式,7.0以后的就使用V2的签名方式
综上:一般输出签名的apk文件时,目前是需要同时选择两种方式进行签名打包的。
文章纯属个人总结,如有明显错误,请指出。不胜感激。
参考:
http://tech.meituan.com/android-apk-v2-signature-scheme.html