我在 Android Studio 2.3中签署了我的 APK (build-> generatedsignedAPK)。当我试图上传到谷歌播放商店它显示的错误,我已经上传了未签名的 APK。有人能回答为什么会发生这种情况,以及如何解决这个问题吗?
这是一个来自谷歌的问题,两天前在 这一页中发布
当我在 Android Studio 2.3中生成已签名的 APK 时,选择了 V1(Jar Signature)而不是 V2(Full APK Signature) ,它就成功上传了
如何使用 V2签署 APK
Https://developer.android.com/studio/command-line/apksigner.html
步骤1) Android Studio,选择 View > Tool Windows > Terminal
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 工具,您必须安装24.0.3或更高版本的 Android SDK Build Tools。您可以使用 SDK 管理器更新此包。
4)确认你的 APK 已签署:
apksigner verify my-app-release.apk
注意: 步骤2到4在命令提示符 G 中执行: AndroidStudio Sdk build-tools 25.0.0
这是因为您在使用发布版本时只使用了 v2签名。
那么 v1和 v2提到了什么?
V1是默认的签名机制,v2是添加的最新机制,验证速度快得多。这意味着在 Android Nougat (Android 7.0,API Level 24)和更新版本上,v2签名的 APK 安装/更新会更快一些。
那你该怎么办?
如果你想签署应用程序没有任何改变
检查默认的 v1(jar Signature only)。
如果你想要最新的签名和对7.x 版本的支持
检查 v2(完全 Apk 签名) ,这也减少了应用程序的大小。
如果你希望应用程序更小,能够安装更快,兼容所有 Android 版本。
同时检查 v1和 v2。
PS: 只适用于与 Studio 签署应用程序,不适用于使用管道构建应用程序。
更多参考资料
Android 7.0引入了 APK 签名方案 v2,这是一个新的应用程序签名方案,提供了更快的应用程序安装时间和更多的保护,以防止未经授权的修改 APK 文件。
在生成带签名的 apk 时,有两个复选框。
我们有三种选择:
Select V1(对于旧版本的签名)-apk 成功上传
Select V2(对于较新的签名版本)-请注意,单独选择此选项不会起作用。
Select V1 and V2(针对较旧和较新的版本)-apk 成功上传
为什么单独选择 V2不起作用
因为 APK 签名方案 v2是在 Android 7.0(Nougat) .为了使 APK 可以安装在 Android 6.0(棉花糖)和较旧的设备上,在使用 v2方案签名之前,应该使用 JAR 签名对 APK 进行签名。中引入的
了解更多信息
签署 V1和 V2。它将成功上传。
如果你达到了这个目标,使用 Android Studio 3.3,无论你是否选中 Signature 复选框,错误都会不断出现,尝试手动删除 app/build 文件夹。
资料来源: https://stackoverflow.com/a/54213942/787511
根据所附的截图,选择 V1(罐签名)和 V2(完全 APK 签名)。它将工作。