昨天晚上apk打完包(第一次),自己放到服务器小测一把,安装,运行都没问题,就开开心心给老板发过去了。老板也测了下,没什么问题,就发布了。
结果一大早,一通电话惊醒了我,老板焦急的质问:“为什么用户在安装我们apk的时候提示‘解析失败 安装包没有签名文件’?你昨晚打包的时候有没有签名啊?”,这突然的一问也让我虎躯一震,难道没签名?不可能!果断一个翻身,开机,查验。
我把昨天打的包(apk文件)后缀名改成zip,解压
签名文件应该在META-INF文件夹下,后缀名是.RSA的文件。但是为什么没有?!难道打包过程有问题?
查看打包过程,发现有一步让勾选签名版本,就是这一步
我想当然的只勾选了V2。问题就出现在这里。
V2这种签名方案是Android7.0引入的,它能提供更快的应用安装时间和更多针对未授权 APK 文件更改的保护。具体请看这里。V1适用于所有android版本的机型,但在Android7.0及以上会缺少针对未授权 APK 文件更改的保护;只勾选V2,Android7.0以下的机型会报错,所以这里建议同时勾选V1,V2,以适用所有机型。
勾选上V1,再次打包,解压apk查看
META-INF文件夹下已经有了CERT.RSA。赶紧把包发给老板,承认错误。
另外,你还可以使用命令行查看RSA文件的内容:
keytool -printcert -file path/to/CERT.RSA
以上,记录一下。
网友评论