我在Android Studio 2.3中对我的APK进行了签名(构建->生成已签名的APK)。当我尝试将其上传到Google Play商店时,它显示我已上传未签名的APK的错误。谁能回答为什么会发生以及如何解决?
我在Android Studio 2.3中对我的APK进行了签名(构建->生成已签名的APK)。当我尝试将其上传到Google Play商店时,它显示我已上传未签名的APK的错误。谁能回答为什么会发生以及如何解决?
Answers:
Android 7.0引入了APK签名方案v2,这是一种新的应用程序签名方案,可提供更快的应用程序安装时间,并提供更多保护,防止对APK文件进行未经授权的更改。
在生成签名的apk时,有两个复选框。
我们提供三种选择:
选择V1(用于较旧版本的签名)-APK成功上传
选择V2(用于较新版本的签名)-请注意,单独选择此功能将无效。
选择V1和V2(适用于旧版本和较新版本)-APK成功上传
为什么仅选择V2无效?
因为Android 7.0(牛轧糖)中引入了APK签名方案v2。要使APK可在Android 6.0(棉花糖)和较旧的设备上安装,请先使用JAR签名对APK进行签名,然后再使用v2方案进行签名。
欲了解更多信息,请点击这里
这是因为您在进行发行版本构建时仅使用v2签名。
那么,提到的v1和v2是什么?
v1是默认的签名机制,而v2是添加的最新机制,其验证速度更快。这意味着v2签名的APK在Android Nougat(Android 7.0,API Level 24)及更高版本上的安装/更新速度更快。
那你该怎么办?
如果您想在不做任何更改的情况下签署应用
检查v1(仅jar签名),这是默认设置。
如果您需要最新的签名并支持7.x版本
检查v2(完整Apk签名),这也会减小应用程序的大小。
如果您希望应用更小巧,则可以更快地安装并与所有Android版本兼容。
检查v1和v2。
PS:仅适用于使用Studio签署应用程序,而不使用管道进行构建。
有关更多裁判链接
如何使用V2签署APK
https://developer.android.com/studio/command-line/apksigner.html
步骤1)在Android Studio中,选择“视图”>“工具窗口”>“终端”
gradlew assembleRelease
2)使用zipalign对齐未签名的APK:
zipalign -v -p 4 my-app-unsigned.apk my-app-unsigned-aligned.apk
3)使用apksigner使用私钥对APK进行签名:
apksigner sign --ks my-release-key.jks my-app-unsigned-aligned.apk --out my-app-release.apk
注意:要使用apksigner工具,您必须安装的Android SDK Build Tools版本为24.0.3或更高。您可以使用SDK Manager更新此软件包。
4)确认您的APK已签名:
apksigner verify my-app-release.apk
注意:第2步到第4步,在命令提示符下执行G:\ AndroidStudio \ Sdk \ build-tools \ 25.0.0 \
如果达到此目的,请使用Android Studio 3.3,并且无论您是否选中“签名”复选框,错误都会不断出现,请尝试手动删除app / build文件夹。