android - 当我尝试上传到 google play 商店时,Cordova 构建和签名错误,没有 v2 签名

标签 android cordova jar-signing

我正在尝试将我签名的 apk 上传到 Google Play 商店

错误信息是:

Error de apksigner: ERROR (Jar signer CERT.DSA): No APK Signature Scheme v2 signature from this signer ERROR (APK Signature Scheme v2 signer #0): No JAR signature from this signer

我的 build.json 文件中有 keystore 信息

keystore 是使用 Visual Studio 2015 创建的

我创建了 apk

cordova build android --release

apk 文件在我的 android 手机上工作正常,我应该怎么做才能为 google play 商店构建 apk?

最佳答案

这表明 APK 的 JAR 签名中的签名证书与 APK 的 APK 签名方案 v2 签名中的签名证书不匹配。这通常是由非标准签名工具引起的,这些工具在重新签名时无法去除现有(通常是调试)签名。

这样的 APK 可以正常安装,因为 Nougat 之前的 Android 只能看到 JAR 签名,而 Nougat 和更新的 Android 将忽略此 APK 的 JAR 签名(因为有一个 APK 签名方案 v2 签名)。但是,当安装了此 APK 的 Nougat 前 Android 升级到 Nougat 或更新版本时,您会遇到问题。对此 APK 的更新将被拒绝,因为它们将被视为使用不同的证书签名。 Play 正在努力避免这种情况。

要排除故障,请尝试运行:

apksigner verify -v --print-certs --max-sdk-version 23 my.apk
apksigner verify -v --print-certs --min-sdk-version 24 my.apk

第一个命令将输出牛轧糖之前的 Android 所见的签名证书。第二个命令将输出 Nougat 和更新的 Android 所见的签名证书。这可能会让您了解哪些签名证书是错误的。

关于android - 当我尝试上传到 google play 商店时,Cordova 构建和签名错误,没有 v2 签名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46312085/

相关文章:

java - 在 Eclipse 中导入项目的一部分

javascript - Cordova CLI 6.3.0 window.plugins 未定义

testing - DropWizard JAR 签名漏洞

android - gradle插件更新后生成的apk未签名

java - 无法弄清楚如何获得相对布局的中心

android - ActionBarSherlock 选项卡的自定义字体

android - 如何在整洁架构内传递android上下文

ios - 是否可以仅使用 Javascript 来加密/解密 SQLite 数据库?

ios - SQLite Order By 在末尾放置变音符号和特殊字符

java - 即使使用受信任的证书签署 JAR 后仍未知发布者