我试图将我签名的apk上传到Google Play商店
错误消息是:
错误de apksigner:错误(Jar签名者CERT.DSA):没有APK签名 来自此签名者ERROR的方案v2签名(APK签名方案v2 签名者#0):此签名者没有JAR签名
我的build.json文件中有密钥库信息
密钥库是使用Visual Studio 2015
创建的我用
创建了apkcordova build android --release
apk文件在我的Android手机中工作正常,我该怎么办为谷歌游戏商店建立一个apk?
答案 0 :(得分:1)
这表明APK的JAR签名中的签名证书与APK的APK签名方案v2签名中的签名证书不匹配。通常,这是由非标准签名工具引起的,这些工具在重新签名时无法删除现有(通常是调试)签名。
这样的APK将安装正常,因为前Nougat Androids只能看到JAR签名,而Nougat和更新的Androids将忽略此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
第一个命令将输出前Nougat Androids所看到的签名证书。第二个命令将输出Nougat和更新的Androids所看到的签名证书。这可能会让您了解签名证书是错误的。
答案 1 :(得分:1)
如果您可以运行 apksigner,请尝试使用它对您的 apk 进行签名。
apksigner sign --ks yourkeystore.keystore yourapk.apk
系统会提示您输入密钥库密码。 之后,您可以使用
检查签名apksigner verify -v yourapk.apk
确保它会返回:
Verifies
Verified using v1 scheme (JAR signing): true
Verified using v2 scheme (APK Signature Scheme v2): true
如果没问题,您可以将已签名的 APK 上传到 Play 商店。