Android云打包签名配置在HBuilderX「发行→原生App-云打包」的「Android设置」区域,需填证书文件(.jks/.keystore)、证书别名、证书私钥密码;manifest.json中不存证书,但须正确配置name、versionName及android.minSdkVersion等字段,防重签依赖云端打包时注入的appid校验逻辑。

uni-app 本身不直接处理签名,签名发生在打包阶段;你配置的是「给谁用、怎么用、验证什么」——核心在 HBuilderX 的云打包界面和 manifest.json 中的证书信息与防重签策略。
Android 云打包时填哪里?
在 HBuilderX 中点击「发行 → 原生App-云打包」,进入配置页后,找到「Android设置」区域:
-
证书文件:必须是本地 .jks 或 .keystore 文件(不能是 .cer 或 .pem) -
证书别名:生成 keystore 时用-alias指定的名称,大小写敏感 -
证书私钥密码:即创建 keystore 时输入的「密钥库口令」,不是「密钥口令」(后者极少用到) -
证书密码:同上,多数情况与密钥库口令一致;若单独设置了密钥口令,才需填此处
填错任意一项都会导致打包失败并报错 Failed to read key ... from store 或 Keystore was tampered with。
manifest.json 里要改什么?
manifest.json 不存证书文件,但控制两个关键行为:
-
"name"和"versionName":影响应用显示名称和版本号,部分渠道(如华为)会校验该值与签名包内 AndroidManifest.xml 是否一致 -
"android":{"minSdkVersion": "21"}等字段:虽不直接参与签名,但若与 keystore 支持的签名算法不兼容(如用 SHA-256 但 minSdkVersion 设为 16),可能在低版本设备上安装失败 - 鸿蒙平台注意:
manifest.json中的versionName/versionCode在 HBuilderX 4.43+ 会覆盖harmony-configs/AppScope/app.json5中同名字段
防重签(appid 绑定)怎么生效?
「防重签」不是签名配置项,而是运行时校验逻辑,依赖云端打包时注入的启动检查代码:
- 必须勾选「防重签」且至少启用
appid验证(默认开启),否则无效果 - 校验失败时弹出提示框,用户点确认即退出,**不会回退到首页或登录页**
- 该机制对 debug 包无效,仅作用于云打包生成的 release APK/AAB
- 若你更换了项目
appid但没重新云打包,旧包启动时会直接退出
真正容易被忽略的是:keystore 文件一旦丢失或密码遗忘,就无法更新同一包名的应用;而防重签一旦开启,换签名=换 appid=换包名,老用户无法覆盖安装。这两件事都不可逆,动手前务必双备份 keystore 并记牢密码。











