为了方便做一些特殊的测试,经常会把一个 apk 文件拆解、修改部分内容、然后重新签名进行安装。Android 的证书生成和签名较 iOS 来说比较开放和简单,我一直是使用自己生成的证书来进行重签。但是这次测试的 apk 包针对证书做了校验,必须使用原本的证书重签才能正常的启动,于是跟合作方要来了证书和密码配置到了脚本中,右手啪的一声敲下了回车,小黑窗口上的日志开始滚动,左手熟练地端起小半杯早上喝剩的STARBUCKS,品咋品咋,嗯~~还是熟悉的味道,今天的任务又被我拿捏得死死的。刚想站起来伸个懒腰,不料就看到一行醒目的报错:
jarsigner: 无法从密钥库中恢复密钥
纳尼,有人动我脚本了?查看了一下修改记录,上次修改还是几年前了。排除法那就只能是证书有问题了,仔细看了一下合作方放过来的内容发现keystore 密码和alias 密码不一致,哎心好累,不太知道为啥要这么复杂,粗暴的我就喜欢简单直接,于是用命令把两个密码统一了,问题解决。
# 修改密码的命令
keytool -keypasswd -keystore ${keystore_path} -alias ${alias_name}
两个密码不一致时在签名过程中进入交互模式输入密钥密码,对于喜欢签名安装一条龙的我来说略显复杂了些,我只是想要简单的快乐,哈哈哈。