【发布时间】:2015-07-31 03:07:45
【问题描述】:
我从客户那里收到了一个密钥库文件,我应该用它来签署一个 APK,该 APK 将替换/更新 Play 商店中的现有 APK。
不幸的是,我收到以下错误:
jarsigner:找不到证书链:alias_name。 alias_name 必须引用包含私钥和相应公钥证书链的有效 KeyStore 密钥条目。
当我尝试使用不同的自行生成的密钥库对同一个 APK 进行签名时,效果很好,所以我认为密钥库中一定缺少某些东西。
Keystore-Typ: JKS
Keystore-Provider: SUN
Keystore enthält 1 Eintrag
Aliasname: alias_name
Erstellungsdatum: 19.05.2015
Eintragstyp: PrivateKeyEntry
Zertifikatskettenlänge: 1
Zertifikat[1]:
Eigentümer: (redacted)
Aussteller: (redacted)
Seriennummer: 5152a7xx
Gültig von: Wed Mar 27 09:00:32 CET 2013 bis: Sun Aug 12 10:00:32 CEST 2040
Zertifikat-Fingerprints:
MD5: (bla)
SHA1: (bla)
SHA256: (bla)
Signaturalgorithmusname: SHA1withRSA
Version: 3
*******************************************
*******************************************
当我将它与不同的密钥库文件进行比较时,我注意到缺少一个“扩展”。它是什么,我该如何解决这个问题?我从客户那里得到的文件不完整吗?
当我将 .p12 文件导入我的 Mac OS X 钥匙串时,我可以看到一个名为 alias_name 的私钥和一个证书;虽然没有“证书链”什么的。
我尝试了以下命令:
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore data_dirs/ff.keystore /path/to/QtApp-release-unsigned.apk alias_name
jarsigner:找不到证书链:alias_name。 alias_name 必须引用包含私钥和相应公钥证书链的有效 KeyStore 密钥条目。
【问题讨论】:
-
您执行了哪个命令来签署 APK? Android 签名密钥永远不会有证书链,因为它们是自签名的。
-
@Robert:更新问题
标签: android apk codesign jarsigner