手机上怎么给 APK 签名
改过一个 APK 之后装不上、提示签名无效,是很多折腾安装包的人都会撞上的坎。这篇讲在手机上重新签名的完整思路:需要什么、按什么顺序做、签完放哪。
一、什么情况下需要重签
- 自己编译或修改过的 APK,安装时提示没有签名 / 签名无效;
- 从别处拿到的包想重签一份再保存;
- 旧包只带了 V1 签名,在安卓 11 及以上的新系统上被拒装——新系统要求 V2 及以上。
这类操作传统上要在电脑上装 Android SDK、敲命令行。如果只是临时处理一两个包,装一个手机端工具更省事,比如 Apksigner 签名工作台,图形界面、选中文件就能签。
二、签名前要备齐两样东西
- 要签的 APK 文件:放在手机存储里,文件管理器能点到的地方。
- 签名用的密钥库:
.jks或.keystore文件,外加它的密码和别名(alias)。三者缺一不可,输错任何一个都会报错。
没有现成密钥库的话,可以在电脑上用 JDK 自带的 keytool 生成一份再传回手机:
keytool -genkeypair -v -keystore my-release.jks -alias myalias -keyalg RSA -validity 10000
三、在手机上签名的顺序
- 打开工具,切到「签名」标签,选「签名文件」,指定手机里的 APK;
- 选择密钥库文件,输入密码和别名;
- 勾选签名方案——拿不准就 V1 + V2 都勾:老系统只认 V1,新系统要 V2,两头都顾;
- 点开始签名,进度走完后,结果默认生成在输入文件所在目录的
done文件夹里。
如果包已经装在手机上,也可以走「签名已安装应用」入口,从应用列表选中它提取出来再签。
四、两条容易踩的规矩
- 签名之后再改动 APK,签名立即失效。改图标、替换资源、重新压缩都算改动——先改完,再签名。
- 要做 zipalign 对齐就排在签名前面,顺序反了签名作废。手机端工具一般自带对齐选项,保持默认顺序即可。
五、签完先验一次
签名完成后建议先验证再安装,确认「签名存在且完整」,避免装到一半才发现问题。具体验证方法见 APK签名验证与证书指纹查看;密钥库的日常管理见 密钥库备份与丢失处理。