最近用工具发现在编译之后签名总提示警告导致APK无法安装的问题
以前用一直么有这个问题好像是JDK7的原因吧,后来发现在签名的时候可以给他一个时间戳的选项
jarsigner -tsa https://timestamp.geotrust.com/tsa -keystore aaaa.keystore
在处理安装失败的时候在加上-digestalg SHA1 -sigalg MD5withRSA这句话
最后完整的:
jarsigner -verbose -digestalg SHA1 -sigalg MD5withRSA -tsa https://timestamp.geotrust.com/tsa -keystore new.keystore -keypass coo -storepass coo -signedjar %1\sign.apk %1\tmp_.apk new.keystore
del %1\tmp_.apk
pause
上面命令是我批处理里面的命令可以参考一下
正常命令如下
jarsigner -verbose -digestalg SHA1 -sigalg MD5withRSA -tsa https://timestamp.geotrust.com/tsa -keystore new.keystore -keypass coo -storepass coo -signedjar signed.apk sign.apk new.keystore
signed.apk是签名之后生成的文件
sign.apk是没签名之前
大家可以看下
jarsigner用法: [选项] jar 文件别名
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 <参数>]] ... 主类文件和构造函数参数