我在 Android Studio 2.3 (build->generate signed APK) 中签署了我的 APK。当我尝试将其上传到 Google Play 商店时,它显示我已上传未签名 APK 的错误。谁能回答为什么会发生以及如何解决?
当我在 Android Studio 2.3 中生成签名 APK 时检查 V1(Jar 签名)而不是 V2(完整 APK 签名)时,它成功上传
Android 7.0 引入了 APK 签名方案 v2,这是一种新的应用程序签名方案,可提供更快的应用程序安装时间和更多保护,防止未经授权的 APK 文件更改。
在生成签名 apk 时,有两个复选框。
V1(Jar 签名) V2(完整的 apk 签名)
我们提供三种选择:
选择 V1(对于较旧版本的签名)- apk 已成功上传 选择 V2(对于较新版本的签名)- 请注意,仅选择此选项将不起作用。选择 V1 和 V2(旧版本和新版本) - apk 成功上传
为什么单独选择 V2 不起作用?
因为 APK Signature Scheme v2 是在 Android 7.0 (Nougat) 中引入的。要使 APK 可安装在 Android 6.0 (Marshmallow) 和更旧的设备上,应先使用 JAR 签名对 APK 进行签名,然后再使用 v2 方案进行签名。
欲了解更多信息jump here
为 v1 和 v2 签名。它将成功上传。
这是因为您在进行发布构建时仅使用 v2 签名。
那么 v1 和 v2 提到了什么?
v1 是默认签名机制,v2 是最新添加的机制,验证速度更快。这意味着 v2 签名的 APK 在 Android Nougat(Android 7.0,API 级别 24)和更高版本上的安装/更新速度更快。
那你该怎么办?
如果您想在不进行任何更改的情况下签署应用程序
检查默认的 v1(仅限 jar 签名)。
如果您想要最新的签名和对 7.x 版本的支持
检查 v2(完整的 Apk 签名)这也减少了应用程序的大小。
如果您希望应用程序更小,能够更快地安装并与所有 Android 版本兼容。
检查 v1 和 v2。
PS:仅适用于使用 Studio 签署应用程序,而不是使用管道构建。
如需更多参考Link
如何使用 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 构建工具。您可以使用 SDK 管理器更新此包。
4) 验证您的 APK 是否已签名:
apksigner verify my-app-release.apk
注意:步骤 2 到 4 在命令提示符 G:\AndroidStudio\Sdk\build-tools\25.0.0\ 中执行
如果您达到此目标,请使用 Android Studio 3.3 并且无论您是否选中 Signature 复选框,错误都会不断出现,请尝试手动删除 app/build 文件夹。
来源:https://stackoverflow.com/a/54213942/787511
根据随附的屏幕截图,选择 V1(Jar 签名)和 V2(完整 APK 签名)。它会起作用的。
https://i.stack.imgur.com/MwEfP.png
不定期副业成功案例分享