You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Cordova构建Android签名AAB/APK时构建成功但产物未签名的排查求助

Cordova构建Android签名AAB/APK时构建成功但产物未签名的排查求助

我现在正在用Cordova开发一款要发布到Google Play Store的Android应用,按照签名构建的流程操作后,构建日志显示完全成功,但最终生成的AAB包用jarsigner验证时却提示未签名,实在搞不懂哪里出了问题,想请大家帮忙排查一下。

我的操作流程与配置

  1. 执行的构建命令
cordova build android --release --buildConfigANDROID_HOME=/Users/dev002/Library/Android/sdk

构建日志最终输出BUILD SUCCESSFUL,无报错,关键片段如下:

BUILD SUCCESSFUL in 4s
61 actionable tasks: 58 executed, 3 up-to-date
Built the following bundle(s):
        /Users/dev002/dev/mobile-cordova-3/cordova/platforms/android/app/build/outputs/bundle/release/app-release.aab
  1. 项目根目录下的build.json配置
{
    "android": {
        "debug": {
            "keystore": "sign-key-1.jks",
            "storePassword": "xxx",
            "alias": "key0",
            "password": "xxx",
            "keystoreType": "jks",
            "packageType": "apk",
            "v1SigningEnabled": true,
            "v2SigningEnabled": true
        },
        "release": {
            "keystore": "sign-key-1.jks",
            "storePassword": "xxx",
            "alias": "key0",
            "password": "xxx",
            "keystoreType": "jks",
            "packageType": "bundle",
            "v1SigningEnabled": true,
            "v2SigningEnabled": true
        }
    }
}
  1. 验证结果
    执行jarsigner -verify app-release.aab后,输出:
no manifest
jar is unsigned

我怀疑的几个方向,也想请大家补充其他排查点

  • 构建命令语法错误
    我发现自己把--buildConfigANDROID_HOME的设置连写成了--buildConfigANDROID_HOME,是不是这里的语法错误导致Cordova根本没读取到build.json?正常应该是cordova build android --release --buildConfig build.json ANDROID_HOME=/xxx这样分开传参对吧?

  • 密钥文件路径问题
    build.json里的keystore值是sign-key-1.jks,这个路径是相对于我执行cordova build的项目根目录吗?会不会Cordova实际是从platforms/android目录去查找这个文件,导致找不到密钥文件却没报错?

  • 签名任务是否实际触发
    看构建日志里完全没有:app:signReleaseBundle相关的任务输出,是不是说明签名步骤根本没被执行?除了buildConfig未加载,还有什么原因会导致跳过签名?

  • 验证工具的适配性
    jarsigner是不是不适合验证AAB包的签名?是不是应该用Google官方的apksigner工具来验证?比如执行apksigner verify --verbose app-release.aab

有没有遇到过类似问题的朋友,或者熟悉Cordova Android签名流程的大佬,能给点排查思路或者解决方案吗?谢谢大家!

火山引擎 最新活动