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签名,也是有效的。
详细签名说明可以参考下面两个文档。
https://www.xda-developers.com/apk-signature-scheme-v3-key-rotation/
https://www.guardsquare.com/en/blog/android-apk-signature-scheme-v3-context-and-new-opportunities