Android Signed APK尝试上传到产品时显示为Unsigned APK

我在Android Studio 2.3(build-> generate signed APK)上签了我的APK。 当我尝试将其上传到Google Play商店时,显示我上传了未签名APK的错误。 任何人都可以回答为什么发生和如何解决?

当我在Android Studio 2.3中生成签名的APK时,select了V1(Jar Signature)而不是V2(Full APK Signature)

Android 7.0引入了APK签名schemev2,这是一种新的应用签名scheme,可提供更快的应用安装时间,并可防止对APK文件进行未经授权的更改。

在生成已签名的apk时,有两个checkbox。

  1. V1(Jar签名)
  2. V2(完整apk签名)

我们有三种select:

  1. selectV1(对于旧版本的签名) – apk获得成功上传

  2. selectV2(对于较新版本的签名) – 请注意,单独select这一项将不起作用。

  3. selectV1和V2(对于较旧的版本) – apk获得成功上传

为什么selectV2是行不通的?

因为APK签名schemev2是在Android 7.0(牛轧糖)中引入的。 要在Android 6.0(Marshmallow)和较旧的设备上安装APK,应在使用v2scheme签名之前使用JAR签名对APK进行签名。

欲了解更多信息跳转到这里

v1v2签名。 它会成功上传。

这是因为你正在使用v2签名,而采取发布构build。

那么v1和v2提到了什么?

v1是默认的签名机制,v2是最新添加的机制,validation速度更快。 这意味着v2签名的APK在Android Nougat(Android 7.0,API Level 24)和更新版本上安装/更新速度更快。

那你该怎么办?

如果您想在没有任何更改的情况下login应用

仅检查v1(仅限jar签名),这是默认设置。

如果你想要最新的签名和支持7.x版本

检查v2(完整的应用程序签名)这也减less了应用程序的大小。

如果你想要的应用程序更小,能够安装更快,并与所有Android版本兼容。

检查v1和v2。

PS:只适用于使用Studio对应用程序进行签名,而不是使用pipe道进行构build。

更多的引用链接

如何使用V2对APK进行签名

https://developer.android.com/studio/command-line/apksigner.html

步骤1)Android Studio,select视图>工具窗口>terminal

gradlew assembleRelease 

2)使用zipalignalignment未签名的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工具,必须安装修订版24.0.3或更高版本的Android SDK构build工具。 您可以使用SDKpipe理器来更新这个软件包。

4)确认您的APK已签名:

 apksigner verify my-app-release.apk 

注意:第2步到第4步在命令提示符下执行G:\ AndroidStudio \ Sdk \ build-tools \ 25.0.0 \

这是Google的一个问题,它在两天前发布在这个页面上