【问题描述】
最近我公司开发的应用收到用户反馈,在手机上安装报错:“安装失败,错误提示:com.android.ddmlib.InstallException: INSTALL_PARSE_FAILED_NO_CERTIFICATES: Scanning Failed.: No signature found in package of version 2 or newer for package com.huawei.crashsxxss”
分析复现:找了一个手机安装正常,没有问题。同时查看了应用包的签名算法是正常的,证书也在有效期内:
问题偶现,难以复现,最终通过收集用户设备信息,发现保障用户集中在Android11手机,查找相关文档发现是因为Android11系统在V1签名的应用存在兼容问题,如果应用只使用V1签名,并且编译时设置的targetSdkVersion=30,是会出现这个问题的。
使用“apksigner verify -v --print-certs XXX.apk”查看我们的应用确实只有V1签名:
【解决方案】
修改使用V2或者V3签名应用,或者临时修改targetSdkVersion
欲了解更多更全技术文章,欢迎访问https://developer.huawei.com/consumer/cn/forum/?ha_source=zzh