执行jarsigner校验APK时提示‘无清单’‘未签名’的问题
解决APK配置签名后仍显示未签名的问题
确认签名配置绑定到构建类型
仅配置signingConfigs还不够,必须在buildTypes里指定release构建使用该签名配置,否则Gradle只会生成未签名APK。补充配置如下:... signingConfigs { release { storeFile file("my-key-used-in-other-successful-project.keystore") storePassword "my-password-used-in-other-successful-project" keyAlias "my-alias-used-in-other-successful-project" keyPassword "my-password-used-in-other-successful-project" } } buildTypes { release { signingConfig signingConfigs.release // 关键:添加这行绑定签名配置 // 其他原有配置如minifyEnabled等保留 } } }校验正确的APK文件
确保你用jarsigner -verify -verbose -certs校验的是release构建输出的最终APK,而非debug版本或build过程中的中间文件。默认release APK路径为app/build/outputs/apk/release/app-release.apk。若使用App Bundle,需先用bundletool生成签名APK再校验,直接校验.aab会报错。检查Gradle构建日志
执行./gradlew assembleRelease时,查看控制台输出,确认是否存在Signing APK相关日志。若能看到Signed APK: [路径]的提示,说明签名流程正常;反之则签名配置未生效。验证密钥库有效性
用以下命令确认密钥库可正常读取:keytool -list -v -keystore my-key-used-in-other-successful-project.keystore
输入密码后若能显示密钥详细信息,说明密钥库无问题。尝试手动签名排查
若Gradle自动签名仍异常,可手动签名验证:- 生成未签名APK:
./gradlew assembleReleaseUnsigned - 执行手动签名:
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-key-used-in-other-successful-project.keystore [未签名APK路径] my-alias-used-in-other-successful-project - 对齐APK:
zipalign -v 4 [签名后APK路径] [最终对齐APK路径]
最后校验对齐后的APK,若正常则说明Gradle配置仍有遗漏。
- 生成未签名APK:
内容的提问来源于stack exchange,提问作者ViliusK
相关产品推荐
相关产品推荐

