美文网首页
关于签名错误"INSTALL_PARSE_FAILED_NO_C

关于签名错误"INSTALL_PARSE_FAILED_NO_C

作者: 随风_04a7 | 来源:发表于2020-02-28 18:46 被阅读0次

问题来源

上一把都还调试安装正常,添加库,修改gradle文件,然后签名验证失败,出现如下错误:


image.png

尝试解决方式

1.手动生成签名文件,并生成apk,push到手机安装,提示 " 安装包解析失败 "

分析:初步判断和签名方式有关,但是一般未指定keyStore文件,调试状态下默认使用系统盘下Users\xxx.android\debug.keystore,而且在修改gradle文件里面仅仅是添加依赖,并未修改相关签名配置;

2.修改gradle签名配置,无效

image.png

分析:很多兄弟说到Android7.0后使用新的签名方式,打包以防万一,两种方式都勾选,然后一拍脑袋手动配置debug的签名,并指明两种签名方式均可用。为什么无效呢?进源码一看:(原来这两个值默认就是true,根本不用设置)


image.png

3.换手机试试,用Android7、Android10的手机,编译、安装都正常

分析:到这里确实产生困惑了,按理说Android6手机不行,高于6就正常,确实应该和签名方式有关啊,束手无策...

4、各种clean、InvalidCache And Restart、重启电脑,无效

5、终极办法,恢复版本,所有手机编译、安装、运行正常

分析:原来和添加的依赖包有关,回头一看只是添加了Mqtt相关依赖,并未有多余动作,猛然想起高版本手机貌似抛出过异常,当时一心解决签名问题,忽略了,回头看看:


image.png

6、排查异常“SecurityException: Invalid signature file digest for Manifest main attributes”

分析:这个非常见异常,赶紧去查了查:
原因为maven打包之后由于重复引用某些依赖导致生成了一些.RSA、.DSA和.SF等文件,运行jar时会抛出该异常,多数解决方案都是删除Jar中的这些文件,于是修改打包配置:

image.png
7、成功,依赖中的.RSA、.DSA、.SF为什么会产生6.0及以下系统的签名异常
分析:首先想到的还是签名方式,V1是验证单个的ZIP条目,而V2则是验证压缩文件的所有字节码,在安装apk的时候,手机会使用签名META-INF目录下的签名摘要信息文件进行签名验证,而由MAVEN依赖新产生的一些.RSA、.DSA、.SF与META-INF下面产生冲突,解析APK时检索到的以这几个后缀名的文件并非我们以KeyStore产生的摘要信息文件,所以导致签名验证失败。
image.png

总结一下

1、V1(JAR)签名需要对apk内所有文件进行签名,V2方案是针对APK整体文件进行签名;同理安装校验签名,V1需要对所有文件进行hash校验,V2只需要校验一次。

2、V1只保证了Apk压缩包内每个文件的完整性,不能保证整个包的完整性,V2两者均能保证。

3、有较多文件的工程,V2在打包、安装解析两个过程中明显快于V1

相关文章

  • 关于签名错误"INSTALL_PARSE_FAILED_NO_C

    问题来源 上一把都还调试安装正常,添加库,修改gradle文件,然后签名验证失败,出现如下错误: 尝试解决方式 1...

  • 中国移动一键登录

    关于103102包签名错误 关于手机号居中

  • iOS 签名 机制分析

    前言:最近看了篇关于iOS签名机制的文章,不熟悉iOS签名 或者只知道一些简单的签名操作的话可以看一看,有什么错误...

  • 可恶的No code signature found.

    首先奉上错误图: 错误字面意思“未找到代码签名”。 好嘛,既然是签名错误,那就是证书和签名文件出问题了。 看了下项...

  • 关于前端微信分享jssdk config:invalid sig

    关于前端微信分享jssdk config:invalid signature 签名错误 这几天刚刚把微信写完,说出...

  • Mac Studio 打包

    Android Studio在生成签名文件时候,使用create新的签名时候,提示有如下错误 不过在出现错误的时候...

  • 两行代码修复多开QQ签名错误

    前言: 近日使用某助手多开QQ 登录发现提示 : 对不起,您的QQ签名错误签名错误.jpg 随之而来的是QQ无法接...

  • 2020-12-28

    iOS签名错误: is automatically signed, but provisioning profil...

  • 微信js sdk invalid signature签名错误

    invalid signature为签名错误 前提:严格按照官网提供的生成签名的方法进行签名。 但我在这要分享的问...

  • iOS 模拟器无法签名

    模拟器是不需要签名的,今天竟然报签名错误了 报错信息 Command CodeSign failed with a...

网友评论

      本文标题:关于签名错误"INSTALL_PARSE_FAILED_NO_C

      本文链接:https://www.haomeiwen.com/subject/mswlhhtx.html