如何使用从客户收到的密钥库来签署APK?

时间:2015-05-19 10:30:13

标签: android apk codesign jarsigner

我从客户那里收到了一个密钥库文件,我本来会用来签署一个APK来替换/更新游戏商店中现有的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密钥条目。

1 个答案:

答案 0 :(得分:0)

创建密钥库时,还可以使用适当的密码在该密钥库中创建别名。我假设" alias_name"不是该别名的名称。您需要向客户端询问该名称和密码,以使用该别名和密钥库对apk进行签名。