作者:刘洋
一、覆盖率踩过的坑
在项目中使用JaCoCo覆盖率的时候,也遇到过各种奇葩的问题,在这里列出来分享下,问题和实际的项目关系密切,希望对有遇到过相似问题的童鞋有所启发。
1.1 覆盖率包在部分手机6.0上安装失败
事情起因:在测试新功能时,用打的覆盖率包,外包反馈部分手机6.0上安装不了。
问题重现:试了在自己的手机,华为mate8的6.0系统上安装正常,属于部分机型问题。
将问题小米手机借来后,发现用豌豆荚或者应用宝确实安装失败,提示“该应用签名有问题,无法安装。”通过adb install安装,提示INSTALL_PARSE_FAILED_NO_CERTIFICATES
怀疑是部分厂商对签名的校验级别比较高。
问题排解:网上有种说法,jdk1.7以后变更了默认的加密算法,而签名程序没有,所以需要在签名时用参数指定。具体方法:在签名命令后加入-digestalg SHA1 -sigalg MD5withRSA
1.会不会这种情况导致:查了应用宝的打包脚本,签名部分已经增加。
此种情况排除
2、会不会签名文件有问题?
重新排查了打包过程的签名,密钥和口令都和RDM打包一样,对ANDROIDR.RSA、ANDROIDR.SF、MANIFEST.MF,清除掉签名,重新进行签名,问题仍然存在。
此种情况排除
3、JaCoCo的jar包重新签名
和RDM打包,也就增加了JaCoCo部分,会不会是JaCoCo的两个jar包jacocoagent.jar和jacocoagent.jar出的问题?
这两个jar包已经是签名过的,会不会需要用应用宝的签名进行重新签?
使用jarsigner重新对这两个jar包用应用宝的密钥进行签名,打包安装,问题仍然存在。