android studio更新之后打包遇到V1(Jar Signature)、 V2(Full APK Signature)问题
昨天更新了android studio 打包時(shí)遇到兩個(gè)勾選框,于是開始了解…
問題
剛開始默認(rèn)是勾選 V2(Full APK Signature),然后我就打包去測試先了,發(fā)現(xiàn)安裝失敗。之后發(fā)現(xiàn)與簽名有關(guān)系。
發(fā)現(xiàn)
android 7.0中引入了APK Signature Scheme V2(Full APK Signature),V1(Jar Signature)來自JDK
兩者區(qū)別
V1:僅驗(yàn)證未解壓的文件內(nèi)容,這樣APK 簽署后可進(jìn)行許多修改 ,可以移動甚至重新壓縮文件。
V2:驗(yàn)證壓縮文件的所有字節(jié),而不是單個(gè) ZIP 條目,因此,在簽名后無法再更改(包括 zipalign)。 正因如此,現(xiàn)在在編譯過程中,我們將壓縮、調(diào)整和簽署合并成一步完成。
V2的好處:更安全而且新的簽名可縮短在設(shè)備上進(jìn)行驗(yàn)證的時(shí)間(不需要費(fèi)時(shí)地解壓縮然后驗(yàn)證), 從而加快應(yīng)用安裝速度。如有任何自定義任務(wù)篡改 APK 文件或?qū)ζ溥M(jìn)行后處理(無論以任何方式), 那么V2 簽名會有作廢的風(fēng)險(xiǎn),從而導(dǎo)致您的 APK 與 Android 7.0 及更高版本不兼容。
?
如何使用
1、打包簽名時(shí)只勾選V1簽名并不會影響什么,但是在7.0上不會使用更安全的驗(yàn)證方式;?
2、只勾選V2簽名7.0以下會直接安裝完顯示未安裝,7.0以上則使用了V2的方式驗(yàn)證?
3、同時(shí)勾選V1和V2則所有機(jī)型都沒問題.
溫馨提示
//為了方便我們每次打包,我們可以設(shè)置每次打包默認(rèn)兩個(gè)都勾選。在app所對應(yīng)的build.gradle添加如下配置, //再sync Now 即可signingConfigs {debug {v1SigningEnabled truev2SigningEnabled true}release {v1SigningEnabled truev2SigningEnabled true} } //為了方便我們每次打包,我們可以設(shè)置每次打包默認(rèn)兩個(gè)都勾選。在app所對應(yīng)的build.gradle添加如下配置, //再sync Now 即可 signingConfigs { ? ?debug { ? ? ? ?v1SigningEnabled true ? ? ? ?v2SigningEnabled true ? } ? ?release { ? ? ? ?v1SigningEnabled true ? ? ? ?v2SigningEnabled true ? } }?
轉(zhuǎn)載于:https://www.cnblogs.com/dongzi711/p/9346585.html
總結(jié)
以上是生活随笔為你收集整理的android studio更新之后打包遇到V1(Jar Signature)、 V2(Full APK Signature)问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: React面试题目录汇总
- 下一篇: stm32芯片超时无应答解决