友情链接:飘渺阁、Ubuntu修炼地

【Android】命令行jarsigner签字和解决找不到证书链错误

1、签名失败

$jarsigner -verbose -keystore /Volumes/Study/resourcesLib/Qunero-achivements/AndroidApp/QuLordy-signed-key -signedjar ./signed_XiaomiVerify.apk ./XiaomiVerify.apk qulordy
输入密钥库的口令短语: 
jarsigner: 找不到 qulordy 的证书链。qulordy 必须引用包含专用密钥和相应的公共密钥证书链的有效密钥库密钥条目。

 

2、查看帮助

$jarsigner -h
用法:jarsigner [选项] jar 文件别名(key的别名)
       jarsigner -verify [选项] jar 文件

[-keystore <url>]           密钥库位置

[-storepass <口令>]         用于密钥库完整性的口令

[-storetype <类型>]         密钥库类型

[-keypass <口令>]           专用密钥的口令(如果不同)

[-sigfile <文件>]           .SF/.DSA 文件的名称

[-signedjar <文件>]         已签名的 JAR 文件的名称

[-digestalg <算法>]    摘要算法的名称

[-sigalg <算法>]       签名算法的名称

[-verify]                   验证已签名的 JAR 文件

[-verbose]                  签名/验证时输出详细信息

[-certs]                    输出详细信息和验证时显示证书

[-tsa <url>]                时间戳机构的位置

[-tsacert <别名>]           时间戳机构的公共密钥证书

[-altsigner <类>]           替代的签名机制的类名

[-altsignerpath <路径列表>] 替代的签名机制的位置

[-internalsf]               在签名块内包含 .SF 文件

[-sectionsonly]             不计算整个清单的散列

[-protected]                密钥库已保护验证路径

[-providerName <名称>]      提供者名称

[-providerClass <类>        加密服务提供者的名称
  [-providerArg <参数>]] ... 主类文件和构造函数参数

 

3、寻找签名别名:

首先,在用eclipse进行导出的时候是成功的。所以尝试重新导出应用可以看到别名,如下我的是 'qulordy key' :

 

4、重新签名:

$jarsigner -verbose -keystore /Volumes/Study/resourcesLib/Qunero-achivements/AndroidApp/QuLordy-signed-key -signedjar ./signed_XiaomiVerify.apk ./XiaomiVerify.apk 'qulordy key'
输入密钥库的口令短语: 
   正在添加: META-INF/MANIFEST.MF
   正在添加: META-INF/QULORDY_.SF
   正在添加: META-INF/QULORDY_.RSA
  正在签名: AndroidManifest.xml
  正在签名: classes.dex
   正在添加: res/
   正在添加: res/drawable/
  正在签名: res/drawable/icon.png
   正在添加: res/layout/
  正在签名: res/layout/main.xml
  正在签名: resources.arsc

 

 

posted @ 2013-06-17 20:52  Neo Nengrong Qu  阅读(31274)  评论(0编辑  收藏  举报
我思故我在、身在尘嚣中、思飞九天外 ...