首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android:用多个证书使用ApkSigner签名APK

Android:用多个证书使用ApkSigner签名APK
EN

Stack Overflow用户
提问于 2021-04-12 08:26:52
回答 2查看 2.6K关注 0票数 0

问题是我的应用程序apk是用sha1签名器#1和sha1签名器#2使用jarsigner签名的。意思是使用第一个发行版-key.jks和第二个版本-key.jks进行多重签名,我认为这是错误的。Apk显示两个证书。现在,尝试使用sha2签名器#1和sha2签名器#2对apksigner进行签名是失败的。

https://developer.android.com/studio/command-line/apksigner

通常,您只使用一个签名者就可以签署APK。如果需要使用多个签名者签署APK,请使用--next-signer选项将应用于每个签名者的一组通用选项分隔开来:

代码语言:javascript
复制
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

代码语言:javascript
复制
Exception in thread "main" java.lang.IllegalStateException: Multiple signing certificates provided for use with APK Signature Scheme v3 without an accompanying SigningCertificateLineage

源代码:

https://android.googlesource.com/platform/tools/apksig/+/master/src/main/java/com/android/apksig/SigningCertificateLineage.java

任何人在使用时帮助获取SigningCertificateLineage和伴随的SigningCertificateLineage --因此apk是多签名的?

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-05-12 15:33:16

找到了解决办法。

1)在.下面获取证书沿袭标志

apksigner旋转--out /path/to/new/file

2)使用这两种证书密码进行多重签名.

签名-血统- my.keystore -下一位

https://android.googlesource.com/platform/tools/apksig/+/refs/heads/master/src/apksigner/java/com/android/apksigner

票数 1
EN

Stack Overflow用户

发布于 2021-04-19 21:13:41

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

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

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67054983

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档