在 APK 中找不到有效的证书。签名文件必须叫META-INF/CERT.RSA

问题描述 投票:0回答:2

我正在尝试将我的 apk 上传到 Clover Marketplace。我使用带有 v1 签名的 apksigner 签署了我的 apk。但是当我将我的 apk 上传到 Clover Marketplace 时,我得到了这个错误。

我错过了什么?

  • 我的应用程序在任何地方都没有 META-INF 文件夹。如何解决这个问题?

我用这个命令来签署我的 apk

java -jar apksigner.jar sign --ks mykey.jks --ks-key-alias mykey --v2-signing-enabled false  --v3-signing-enabled false --out myapp.apk  ~/Desktop/app-release.apk 
android apk meta-inf apksigner
2个回答
2
投票

AFAIK META-INF/CERT.RSA 是应用程序 apk 的一部分,它是在您使用密钥库对应用程序进行签名时生成的。

可以运行这条命令看看

jarsigner -verify -verbose -certs app/release/app-release.apk

为什么我会出错?

在我的例子中,文件以某种方式保存为 META-INF/KEY0.SF、META-INF/KEY0.RSA。我相信如果文件未保存为 CERT.RSA

,Clover 市场会拒绝该应用程序

我是怎么解决的?

  • 我用 keyalias "cert" 创建了一个新的密钥库
  • 辞掉apk.
  • jarsigner -verify -verbose -certs app/release/app-release.apk
    确认

文件重命名为 META-INF/CERT.SF、META-INF/CERT.RSA

更多讨论:

我不知道在退出应用程序后文件是如何重命名的。我再次尝试使用另一个 keyalias 来查看它是否再次重命名。但它在文件重命名为 CERT.RSA 后并没有重命名文件


0
投票

对于在 Windows 上面临同样问题的人

我从提供的示例命令三叶草中删除了

--v1-signer-name
并且它有效。

最后的完整命令是

apksigner.bat sign --ks keystore.jks --v1-signing-enabled=true --v2-signing-enabled=false --v3-signing-enabled=false --in app-release-unsigned.apk
© www.soinside.com 2019 - 2024. All rights reserved.