安卓签名apk签名V2
Posted
技术标签:
【中文标题】安卓签名apk签名V2【英文标题】:Android signing apk signature V2 【发布时间】:2017-05-14 11:26:56 【问题描述】:我正在使用 android studio 2.2.2 版和 gradle 2.2.2 版开发 Android 应用程序。我正在尝试生成签名的 APK。我执行了使用 Android Studio 生成签名 APK 的常规过程。之后,我做了Zipalign
过程。生成的 APK 在 android 6 以下运行良好。但在 Android N 的情况下,它在安装 APK 时显示以下错误:
Failed to install C:\Users\User\AppData\Roaming\Skype\My Skype Received Files\ap
p-dev3-release_zipalign.apk: Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES: Fail
ed to collect certificates from /data/app/vmdl25816781.tmp/base.apk: META-INF/CE
RT.SF indicates /data/app/vmdl25816781.tmp/base.apk is signed using APK Signatur
e Scheme v2, but no such signature was found. Signature stripped?]
根据文档 Android Studio 2.2,它自行处理登录签名 V1 和 V2。我做错什么了吗?需要一些帮助。
【问题讨论】:
***.com/questions/15636396/… 【参考方案1】:Android Plugin for Gradle 以及 Android Studio 2.2 和更高版本默认生成使用 v1(JAR 签名)和 v2 方案(APK 签名方案 v2)签名的 APK。对 v2 签名 APK 的任何修改都会使其 v2 签名无效,Android Nougat (Android 7.0) 及更高版本会验证该签名,从而阻止在 Android Nougat 及更高版本上安装 APK。
解决方案:
不要在已签名的 APK 上运行 zipalign - 适用于 Gradle 和 Android Studio 的 Android 插件将为您的发布版本生成已经 zip 对齐的 APK。
如果您需要运行 zipalign,请在 APK 签名之前执行。请参阅https://developer.android.com/studio/command-line/zipalign.html 和https://developer.android.com/studio/publish/app-signing.html#signing-manually。
在您的 build.gradle 文件中禁用 v2 登录。请参阅 https://developer.android.com/studio/releases/gradle-plugin.html,尤其是 v2SigningEnabled。
【讨论】:
第 3 点可能不再有效,因为 Android 11 要求 APK 使用 v2 签名进行签名。以上是关于安卓签名apk签名V2的主要内容,如果未能解决你的问题,请参考以下文章