Google从Android N上开始把签名方法改成了scheme V2, 在P上又改成了scheme V3. 在大环境里面编译是用的V3方法,但是在studio上目前还不支持 scheme V3 签名。所以如果shareUID的话,可能会出现签名不一致问题。
V2 和V1的差别是V2是对整个zip包进行签名,而且在zip包中增加了一个apk signature block,里面保存签名信息。
v3 是在v2的基础上增加了,certificate rotation or APK key rotation, 就是说增加了族系的概念,可以在原有的证书或者key的基础上做一个变化,变成新的key,用新的key签名,也是有效的。
问题:输出的渠道包无法在android p 上安装,如果原始包是用的最新版 apksigner(build-tools 28.0.x) 签名
原因:android p 需要 apksigningblock 的长度确保为 4096 的倍数
等walle兼容v3签名
所以加固后,手动签名用28以下的版本进行签名就可以了。比如27版本