我在Android Studio 2.3中签署了我的APK(build->生成签名APK)。当我尝试将其上传到Google Play商店时,它会显示我已上传未签名APK的错误。任何人都可以回答为什么会发生这种情况以及如何解决它?
答案 0 :(得分:83)
在我在Android Studio 2.3中生成已签名的APK时检查V1(Jar Signature)而不是V2(Full APK Signature)时上传成功
答案 1 :(得分:71)
Android 7.0引入了APK Signature Scheme v2,这是一种新的应用签名方案,可提供更快的应用安装时间,并提供更多保护,防止对APK文件进行未经授权的更改。
生成签名的apk时,有两个复选框。
我们有三种选择:
选择V1(旧版签名) - apk上传成功
选择V2(对于较新版本的签名) - 请注意,单独选择此选项不起作用。
选择V1和V2(旧版和新版) - apk上传成功
为什么单独选择V2不起作用?
因为APK签名方案v2是在Android 7.0(Nougat)中引入的。 要在Android 6.0(Marshmallow)和旧设备上安装APK,应在使用v2方案签名之前使用JAR签名对APK进行签名。
了解更多信息jump here
答案 2 :(得分:18)
为 v1 和 v2 签名。它会成功上传。
答案 3 :(得分:8)
这是因为您在使用发布版本时仅使用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签署应用程序,而不是使用管道进行构建。
更多参考Link
答案 4 :(得分:2)
如何使用V2签署APK
https://developer.android.com/studio/command-line/apksigner.html
步骤1)Android Studio,选择View>工具窗口>终端
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 \
中执行答案 5 :(得分:0)
这是Google的一个问题,它是两天前在this page
发布的答案 6 :(得分:0)
如果达到此目的,请使用Android Studio 3.3,无论您是否选中“签名”复选框,错误都会不断出现,请尝试手动删除app / build文件夹。
答案 7 :(得分:0)