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

Cordova build and signing error when I try to upload to google play store, no v2 signature

我正在尝试将我签名的 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 文件中有密钥库信息

密钥库创建于 Visual Studio 2015

我用

创建了 apk

cordova build android --release

apk 文件在我的 android phone 中运行良好,我应该如何为 google 游戏商店构建一个 apk?

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

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

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

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

第一个命令将输出 pre-Nougat Androids 所见的签名证书。第二个命令将输出 Nougat 和更新的 Androids 所见的签名证书。这可能会让您了解哪些签名证书是错误的。

如果你可以 运行 apksigner,请尝试使用它来签署你的 apk。

apksigner sign --ks yourkeystore.keystore yourapk.apk

系统将提示您输入密钥库密码。 之后,您可以使用

检查签名
apksigner verify -v yourapk.apk

确保它将 return:

Verifies
Verified using v1 scheme (JAR signing): true
Verified using v2 scheme (APK Signature Scheme v2): true

如果没问题,您可以将已签名的 APK 上传到 Play 商店。