如何将应用签名从 V1 升级到 V2?

Posted

技术标签:

【中文标题】如何将应用签名从 V1 升级到 V2?【英文标题】:How to upgrade app signature from V1 to V2? 【发布时间】:2021-10-03 04:58:50 【问题描述】:

我有一个使用 V1 签名(jar 签名)签名的 ionic-3 应用程序,并在 Google 商店发布。现在,从 2021 年 8 月开始,新应用将需要以 API 级别 30 (android 11) 为目标。

所以,我将 API 级别更改为 30 并使用 V1 签名,但 Google 不接受该 APK。

将应用签名从 V1 升级到 V2 的标准方法是什么?

【问题讨论】:

【参考方案1】:

您不能“升级”应用签名,而只需使用正确的签名工具重新签名应用即可。

这意味着不再使用 jarsigner 来签署apk 文件!

请改用apksigner(Windows/Linux 上为apksigner.bat/apksigner.sh)为您的应用签名。 apksigner 是 Android SDK 构建工具的一部分。 apksigner 的最新版本(例如,来自 build-tools 版本 31.x/30.x/29.x 总是默认创建 V1+v2 签名(我假设旧版本,也做 v1/v2 签名,但我不确定)。

【讨论】:

我可以使用相同的 .keystore 文件来签署 v2 签名吗? @Nirmalya 您可以使用相同的密钥库,底层密码仍然相同。【参考方案2】:

如果您在 android studio 中完成所有签名,请在进行发布构建时注意选项。它应该为您提供 v1 和 v2 签名的选项,您可以选择 v2。 Google play 应该可以接受该签名的 apk。

【讨论】:

以上是关于如何将应用签名从 V1 升级到 V2?的主要内容,如果未能解决你的问题,请参考以下文章

Adroid 签名机制V1,V2,V3

Android V1及V2签名原理简析

缺少 Android Studio 签名 v1 或 v2

Unity打包安卓项目问题汇总(持续更新)

Android 他山之石,可以攻玉!一篇文章看懂 v1/v2/v3 签名机制

如何使用 build.gradle 文件中的 V1(Jar 签名)或 V2(完整 APK 签名)