Cordova Android 签名三种方式详解:证书生成、命令行直接签名与配置文件自动签名

Cordova Android 签名三种方式详解:证书生成、命令行直接签名与配置文件自动签名

给你把 Cordova Android 签名的三种方式一次性讲清楚(生成证书 → 命令行直接签名 → 配置文件自动签名 ),你照着做就能打出已签名的 APK/AAB。


一、先准备:生成签名证书(只做一次)

打开终端 / CMD,keytool 是 JDK 自带,先确认 java -version 能运行。

bash 复制代码
keytool -genkey -v \
  -keystore my-release-key.jks \
  -alias my-key-alias \
  -keyalg RSA -keysize 2048 -validity 10000
  • my-release-key.jks:证书文件名(放在项目根目录即可)

  • my-key-alias:别名(记住,后面要用)

  • 执行后会让你填:姓名、组织、密码(务必记好两个密码:keystore 密码 和 key 密码)


二、方式一:命令行直接签名(简单直接)

1)打 release 包(未签名)

bash 复制代码
cordova build android --release -- --packageType=apk

输出:platforms/android/app/build/outputs/apk/release/app-release-unsigned.apk

2)命令行签名(推荐,一行搞定)

bash 复制代码
cordova build android --release \
  -- --keystore=my-release-key.jks \
     --storePassword=你的keystore密码 \
     --alias=my-key-alias \
     --password=你的key密码 \
     --packageType=apk
  • 成功后直接得到 已签名 APK,路径同上

想打 AAB 就把最后改成:

bash 复制代码
--packageType=bundle

三、方式二:用 build.json 配置签名(推荐,密码不暴露在命令行)

项目根目录新建 build.json:

json 复制代码
{
  "android": {
    "release": {
      "keystore": "my-release-key.jks",
      "storePassword": "你的keystore密码",
      "alias": "my-key-alias",
      "password": "你的key密码",
      "packageType": "apk"
    }
  }
}

然后直接执行:

bash 复制代码
cordova build android --release

Cordova 会自动读取 build.json 并签名


四、方式三:jarsigner 手动签名(适合已有未签名包)

bash 复制代码
# 签名
jarsigner -verbose -keystore my-release-key.jks \
  platforms/android/app/build/outputs/apk/release/app-release-unsigned.apk \
  my-key-alias

# 对齐优化(必须)
zipalign -v 4 \
  platforms/android/app/build/outputs/apk/release/app-release-unsigned.apk \
  app-release-signed.apk
  • 得到 app-release-signed.apk 就是最终可上线包

五、常见问题

  • zipalign 不是内部命令 :把 android_sdk/build-tools/xxx/ 加入环境变量

  • 证书密码错 :检查 build.json 或命令行里的密码(keystore 和 key 是两个密码)

  • AAB 签名失败:Cordova 11+ 才支持 AAB 直接签名,建议升级


相关推荐
stevenzqzq1 小时前
Android Jetpack Compose 列表开发指南:为什么你不需要再为底部 Item 写额外间距
android·android jetpack
Pniubi7 小时前
HashMap的扩容和树化边界
java·开发语言
Mikko77 小时前
用 Java 复刻了高中时在塞班上玩的「熔岩矿车」:纯 Swing、零依赖、没有一张图片,一个 jar 双击就能玩
java·游戏开发·swing
知了学历孙老师7 小时前
小自考的校考和统考,出题方和难度差在哪
java·大数据·前端
Java爱好狂.8 小时前
Java初学者如何一周速通SpringBoot!
java·spring boot·后端·spring·高并发·架构师·java面试
秋饼8 小时前
LLM API密钥动态轮换实战:Spring Vault + Spring AI + 多Provider路由
java·ai·技术分享·后端开发
撩得Android一次心动9 小时前
Jetpack Compose 知识点整理2【个人用】
android·笔记·学习·kotlin·compose
福兮说10 小时前
JSON 格式正确,数据就可靠吗?我用一份自编配置检查类型与空值
java·前端·json
是真的小外套10 小时前
2024年软考中级信息安全工程师|选择题考点+案例分析真题解析(含答案)
android·网络
紧跟先前的步伐11 小时前
Go AI Agent 实战 03|Token、上下文窗口与模型调用成本
java·人工智能·golang