一、签名失败html
$jarsigner -verbose -keystore /Volumes/Study/resourcesLib/Qunero-achivements/AndroidApp/QuLordy-signed-key -signedjar ./signed_XiaomiVerify.apk ./XiaomiVerify.apk qulordy 输入密钥库的口令短语: jarsigner: 找不到 qulordy 的证书链。qulordy 必须引用包含专用密钥和相应的公共密钥证书链的有效密钥库密钥条目。
二、查看帮助算法
$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 <参数>]] ... 主类文件和构造函数参数
三、寻找签名别名:eclipse
首先,在用eclipse进行导出的时候是成功的。因此尝试从新导出应用能够看到别名,以下个人是 'qulordy key' :ide
四、从新签名:函数
$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
在cmd进入jdk的bin目录,而后执行如下命令:加密
jarsgner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore [keystorePath] -singnedjar [apkOut] [apkln] [alias]url
ps:红色英文不填的话,默认签名算法采用“SHA256withRSA”,因此会致使360提示:”您的应用签名算法采用“SHA256withRSA”,在部分4.2一下安卓版本的手机上不能安装spa