Android:使用带有多证书的ApkSigner对APK进行签名

Android:使用带有多证书的ApkSigner对APK进行签名,android,jarsigner,android-app-signing,apksigner,Android,Jarsigner,Android App Signing,Apksigner,问题是我的应用程序apk使用jarsigner与sha1 signer#1和sha1 signer#2进行了签名。意思是同时使用first-release-key.jks和second-release-key.jks进行多重签名,我认为这是错误的。Apk显示两个证书。现在尝试使用sha2签名者#1和sha2签名者#2与apksigner签署apk失败 通常,您只使用一个签名者对APK进行签名。如果需要使用多个签名者对APK进行签名,请使用--next signer选项来分隔要应用于每个签名者的

问题是我的应用程序apk使用jarsigner与sha1 signer#1和sha1 signer#2进行了签名。意思是同时使用first-release-key.jks和second-release-key.jks进行多重签名,我认为这是错误的。Apk显示两个证书。现在尝试使用sha2签名者#1和sha2签名者#2与apksigner签署apk失败

通常,您只使用一个签名者对APK进行签名。如果需要使用多个签名者对APK进行签名,请使用--next signer选项来分隔要应用于每个签名者的常规选项集:

apksigner sign [signer_1_options] --next-signer [signer_2_options] app-name.apk

apksigner sign --ks sample.keystore --ks-key-alias abc --ks-pass pass:xyz --key-pass pass:somepass --next-signer --ks someks.jks --ks-key-alias key0 --ks-pass pass:123456 --key-pass pass:123456 MSIGN.apk
当--next signer与上述一起使用时,apksigner获取错误以使用“签名CertificateLeage

源代码:

在使用--next signer(下一个签名者)时,是否有人可以帮助您在何处获取签名证书以及附带的签名证书?因此apk是多签名的?

谢谢

尝试使用标志
--v3 signing enabled=false

正如错误消息中提到的,v3签名不支持使用多个密钥进行签名,因此我怀疑禁用它将修复此错误

请注意,v3签名是v2签名的一个扩展,它支持密钥轮换,因此您不会失去安全性(除了密钥轮换之外,您可能永远无法使用它)。

找到了解决方案

1)使用下面的签名获取证书沿袭。

apksigner rotate--out/path/to/new/file--old signer\--ks my.keystore--new signer--ks mynew.jks

2)使用两个证书密码进行多重签名。

apksigner sign--沿袭MyLinageFile--ks my.keystore--下一个签名者--ks mynew.jks my.apk


“如何在使用--next signer时附带signingCertificateLeage?”它显示在您的问题中链接到的同一页上:编辑我的问题:从何处获取证书沿袭?也显示在同一页上(靠近底部)。您的意思是“$apksigner rotate--out/path/to/new/file--old signer\--ks release.jks--new signer--ks release2.jks”?使用
--relegate
选项。请参阅
Exception in thread "main" java.lang.IllegalStateException: Multiple signing certificates provided for use with APK Signature Scheme v3 without an accompanying SigningCertificateLineage