ChatGPT解决这个技术问题 Extra ChatGPT

尝试上传到生产环境时,Android 签名的 APK 显示为未签名的 APK

我在 Android Studio 2.3 (build->generate signed APK) 中签署了我的 APK。当我尝试将其上传到 Google Play 商店时,它显示我已上传未签名 APK 的错误。谁能回答为什么会发生以及如何解决?

你能发送错误信息吗?
当我在生成签名的 APK 时检查 V1(Jar 签名)而不是 V2(完整 APK 签名)时,它成功上传。

N
Nani Kalyan

当我在 Android Studio 2.3 中生成签名 APK 时检查 V1(Jar 签名)而不是 V2(完整 APK 签名)时,它成功上传


我选中了两个复选框:Jar Signature 和 Full APK Signature。这个答案提供了必要的洞察力。
当 V2 可用于签名时,为什么只检查 V1?您应该同时选择 V1 和 V2 并接受 Piyush Kukadiyas 的回答。
我会被诅咒的,它成功了!但为什么? (我正在运行 AS 3.1.3)。
P
Piyush Kukadiya

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 时,为什么 Google 会抱怨?
@ScottBiggs 当你们都检查过时,他们的抱怨是什么?
A
Ahmad

为 v1 和 v2 签名。它将成功上传。


S
Sanoop Surendran

这是因为您在进行发布构建时仅使用 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


P
Piyush Patel

如何使用 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\ 中执行


先生,我尝试了上述程序,但出现以下错误---您上传的 APK 不是 zip 对齐的。您需要在 APK 上运行 zip align 工具并再次上传。?
@Kapilsoni 缺少第 2 步。您需要转到 SDK -> 构建工具 -> 30.0.2 在那里您会找到 zipalign
先生,但如果我通过上述过程生成构建,我的设备没有安装错误
首先,生成一个构建,然后在APK上应用这些步骤后,必须签名
是的,先生完成了,但我在游戏控制台中遇到了另一个问题 - 您上传了一个未使用上传证书签名的 APK。您必须使用相同的证书。上传证书有指纹:
D
D.Rosado

如果您达到此目标,请使用 Android Studio 3.3 并且无论您是否选中 Signature 复选框,错误都会不断出现,请尝试手动删除 app/build 文件夹。

来源:https://stackoverflow.com/a/54213942/787511


M
Mehran Zamani

这是 Google 的问题,两天前在 this page 发布


上传失败 您上传了一个未签名的 APK。您需要创建一个签名的 APK。
S
Sudheer Kumar Palchuri

根据随附的屏幕截图,选择 V1(Jar 签名)和 V2(完整 APK 签名)。它会起作用的。

https://i.stack.imgur.com/MwEfP.png