您的位置:首页 > 移动开发 > Android开发

Android 签名时 v2 与 v1 的选择

2017-07-06 13:00 417 查看
注:对于 v2 与 v1 的对比不在此文讨论范围

结论:

一定可行的方案: 只使用 v1 方案

不一定可行的方案:同时使用 v1 和 v2 方案

对 7.0 以下一定不行的方案:只使用 v2 方案

PS:
如果要支持 Android 7.0 以下版本,那么尽量同时选择两种签
名方式,但是一旦遇到签名问题,可以只使用 v1 签名方案


签名打包时签名版本(Signature Versions)的选择



参考链接:https://source.android.com/security/apksigning/v2#verification

在 Android 7.0 以上版本的设备上,APK 可以根据Full Apk Signature(v2 方案) 或者 JAR-signed( v1方案)进行验证;

而对于7.0以下版本的设备其会忽略 v2 版本的签名,只验证 v1 签名

如图所示:



真机测试:
三个包
1、only_v2:
只使用 v2 方案进行签名
预计只能安装在 7.0 以上设备;7.0 以下设备会显示签名失败
2、only_jar_sigh:
只使用 jar_sigh(即 v2 方案)进行签名
预计能安装在所有设备上
3、both_jar_and_v22:
同时使用 v1 和 v2 两种签名方式
预计一般能正常安装在普通手机上,某些设备可能无法正常安装
三台设备:
Nexus 5X:
Android 版本:8.0.0
Le X820:乐视手机
Android 版本:6.0.1
红米1:
Android 版本:4.4.2
安装测试:
1、分别将 1、2、3 包安装到 Nexus 5X 上,都能正常安装与启动
2、将1 包尝试安装到 Le X820 上,安装不成功;2、3 安装成功
3、将1 包尝试安装到红米1上,安装不成功;2、3 安装成功


安装失败时提示:



安装成功时提示:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: