APK无META-INF文件夹,上传Clover Marketplace签名验证失败求助
针对你遇到的「No valid certificate found in APK. The signature file must be called META-INF/CERT.RSA」错误,结合你使用v1签名的场景,按以下步骤排查解决:
先确认签名是否实际生效
执行apksigner的验证命令,检查签名后的APK是否包含有效v1签名:apksigner verify --verbose --print-certs myapp.apk如果输出中没有
Verified using v1 scheme (JAR signing): true的内容,说明签名过程未成功生成v1签名文件,需要重新执行签名流程。预处理原APK(清除旧签名+对齐)
- 如果原APK是debug版本或已被其他签名覆盖,先删除原有签名文件:
zip -d ~/Desktop/app-release.apk META-INF/* - 对APK进行zipalign对齐(v1签名推荐对齐,避免签名异常):
zipalign -v 4 ~/Desktop/app-release.apk app-release-aligned.apk
- 如果原APK是debug版本或已被其他签名覆盖,先删除原有签名文件:
重新执行签名命令
使用对齐后的APK重新签名,确保命令参数正确(注意路径和文件名):java -jar apksigner.jar sign --ks mykey.jks --ks-key-alias mykey --v2-signing-enabled false --v3-signing-enabled false --out myapp-signed.apk app-release-aligned.apk执行时留意命令行输出,若出现密码错误、别名不存在等提示,及时修正keystore相关信息。
手动验证签名结果
将签名后的myapp-signed.apk重命名为.zip并解压,检查是否存在META-INF文件夹,且文件夹内包含CERT.RSA、CERT.SF、MANIFEST.MF三个文件。如果存在,说明签名成功,此时再上传至Clover Marketplace即可。排查apksigner版本问题
若以上步骤都无效,尝试使用Android SDK Build Tools自带的apksigner(而非单独的jar包),路径一般为$ANDROID_HOME/build-tools/<your-build-tools-version>/apksigner,新版本的apksigner对v1签名的兼容性更好。
内容的提问来源于stack exchange,提问作者Rohit Singh

