apk-signer 签名操作常见问题
Q1:签名时一直提示密码错误怎么办
分清两个密码:密钥库密码与密钥密码——多数情况下相同,但不是必然。先确认输入法没有自动补空格、大小写没被切换;仍不行,回电脑用 keytool 验证密码(keytool -list 能解开就是密码对)。密码真忘了,见 Q2。
Q2:密钥库密码忘了还能救吗
不能。keystore 的加密设计没有找回通道,这也是密钥备份纪律强调"文件与密码分开存、都要有备份"的原因。补救动作只有换新密钥重签,代价见重签重装。
Q3:签名中途失败,原文件会坏吗
不会。签名产出的是新文件,原始包不动——这也是输出管理建议保留原始包的原因。失败后修好原因(多为密码或文件损坏)重签即可。
Q4:为什么签名后文件变大了
正常。签名数据(尤其 v1+v2 双方案)本身占空间,包越大签名块相应越大。详见方案全景对校验对象的说明。
Q5:同一个包能签几次
任意次。每次签名都是独立的产出,想用两把密钥各签一份完全可以——但要清楚两份包互相之间不能覆盖安装(签名不同),参照签名不一致排查。
Q6:签完直接能发给别人吗
能,但建议发之前自己先验证一遍,并随包说明"与我之前发的包同签名/不同签名"——对方的安装体验取决于这句话,参照开发者动线的第 4 步。
还有密钥与验证侧的问题,见密钥与验证安全常见问题。