摘要:HarmonyOS NEXT 原生应用上架 ≠ 点击“发布”那么简单。签名证书怎么配?隐私合规怎么写?审核被驳回如何秒级定位?本文以华为应用市场为靶场,手把手带你走完签名→打包→上传→审核→灰度→全量的完整链路,并给出专家级踩坑清单,让你一次过审,拒绝反复拉扯。

目录

  1. 战前准备:开发者账号与权限矩阵
  2. 签名体系:p12、cer、profile 三剑客
  3. 隐私合规:一键生成“隐私政策”与“权限声明”
  4. 打包上架:DevEco Studio 一键签名&上传
  5. 审核攻防:驳回 TOP10 场景与秒级修复方案
  6. 灰度到全量:分阶段发布、热回滚与数据看板
  7. 专家锦囊:命令行重签名、CI/CD 模板、自动化合规扫描

1. 战前准备:开发者账号与权限矩阵

角色 所需权限 开通入口 备注
开发者 实名认证、银行卡 华为开发者联盟 1 个工作日
企业账号 DUNS 编号、营业执照 同上 3 个工作日,可开支付
应用上架 管理员授权“应用分发” AppGallery Connect → 用户与权限 细粒度到应用级

⚠️ 踩坑:个人账号无法开通应用内支付推送,企业开发者务必提前升级。


2. 签名体系:p12、cer、profile 三剑客

HarmonyOS 沿用双证书模型,但 NEXT 版本新增应用指纹绑定,任何改动都必须重签名

2.1 本地生成密钥对(一次性)

# 打开 DevEco Studio 内置终端
keytool -genkeypair -alias myapp -keyalg EC -keysize 256 -sigalg SHA256withECDSA \
  -keystore myapp.p12 -storetype PKCS12 -validity 36500 \
  -dname "CN=YourCompany, OU=AppCenter, O=YourCompany, C=CN"
  • alias:全局唯一,建议 产品名_年份
  • keystore*.p12 文件,绝不可上传 Git,放 ~/.harmonyos/keystore/

2.2 在 AppGallery Connect 申请证书

  1. 证书管理新增证书 → 上传 myapp.csr(DevEco 自动生成)
  2. 下载 myapp.cer有效期 25 年,但一个账号最多 3 张,谨慎复用。

2.3 生成 Profile(= 授权清单)

  • 类型:调试(debug)、发布(release)、企业(enterprise)
  • Bundle Name 必须与 module.json5bundleName 完全一致大小写敏感
  • 权限列表:提前勾选,否则运行时 permission denied 直接崩溃

🔥 高阶技巧:使用 hap-sign-tool 命令行批量签多 HAP,CI 必用:

java -jar hap-sign-tool.jar sign-app -keyAlias myapp -signAlg SHA256withECDSA \
  -keystoreFile myapp.p12 -keystorePwd ****** \
  -profileFile myapp_release.p7b -certFile myapp.cer \
  -inFile entry-default-signed.hap -outFile entry-release.hap

3. 隐私合规:一键生成“隐私政策”与“权限声明”

华为审核对隐私政策数据清单实行机器 + 人工双检,关键字命中即驳回

3.1 自动化生成隐私政策

使用官方脚手架 privacy-policy-generator(npm 包):

npm i -g @hw-agc/privacy-policy-generator
hw-ppg init
hw-ppg g  # 生成 md & html 双版本

模板已内置HarmonyOS 专用条款,只需填写:

  • 采集数据类型(IMEI、OAID、加速度、GPS…)
  • 是否跨境传输
  • 数据保存期限

3.2 在 AGC 填写数据安全表单

入口:我的应用 → 版本信息 → 数据安全

  • 数据加密:勾选“传输加密 + 存储加密”,否则秒拒
  • 未成年人:若含社交/支付,必须接入华为未成年人保护 SDK

⚠️ 常见驳回:

  • 权限与功能不匹配(例:声明“相机”却用于扫码)
  • 隐私政策外链 404
  • 未提供用户注销入口

4. 打包上架:DevEco Studio 一键签名&上传

4.1 配置签名窗口(图形化)

File → Project Structure → Signing Configs

  • Store File:选 *.p12
  • Key AliasStore PasswordKey Password 三件套
  • Sign Profile:选 *.p7b
  • Sign Cert:选 *.cer

勾选 Automatically sign,后续 Build → Build Hap(s)/App(s) → Release 即可全自动签名。

4.2 生成上架包

  • 单 HAP 应用entry-release.hap
  • 多模块应用*.app(包含所有 module)
  • 大小限制4 GB 以内,超过 100 MB 必须配置资源包扩展(.pack)

4.3 上传至 AGC

  1. 版本管理新建版本 → 上传 .app.hap
  2. 系统会自动扫描
    • 签名合法性
    • 最低 API 级别(NEXT 要求 ≥ 12)
    • 64 位唯一性(HarmonyOS 不再支持 32 位)
  3. 填写版本说明截图
    • 截图 ≥ 4 张,最小 1080P,禁止含状态栏信息竞品 Logo
    • 版本说明中文 ≤ 500 字,禁止“test”“beta”等字样

5. 审核攻防:驳回 TOP10 场景与秒级修复方案

驳回代码 官方描述 专家翻译 秒修方案
906032 隐私政策未声明加速度传感器 你用了传感器却没写 privacy.md 加一句“为实现步数统计,我们采集加速度传感器数据”
907127 应用内支付未接入华为支付 SDK 个人账号想收钱? 升级企业账号,集成 IAP Kit
908166 存在热更新逻辑 想动态下发代码? 删除 eval()new Function()、反射加载 dex 逻辑
910003 图标圆角不符合华为视觉规范 图标太方了 官方图标模板 一键导出

🔍 审核周期:工作日 16:00 前提交,当天出结果;节假日顺延。


6. 灰度到全量:分阶段发布、热回滚与数据看板

6.1 创建灰度版本

AGC → 版本管理灰度发布

  • 比例灰度:1%、5%、20%、50% 四档,24 小时内可撤回
  • 名单灰度:上传 .csv(OpenID/手机号),≤ 1000 人
  • 地域灰度:精确到省/直辖市,适合本地化功能

6.2 热回滚(秒级)

若灰度崩溃率 ≥ 8‰ 或评分 ≤ 3.0,系统会自动暂停分发;你也可以手动:

# 命令行回滚(CI 友好)
hw-agc-cli rollback --appId 123456 --versionCode 102 --type halt

6.3 数据看板核心指标

指标 健康阈值 说明
崩溃率 ≤ 2‰ 超过即回滚
ANR 率 ≤ 1‰ HarmonyOS 对 ANR 零容忍
平均启动耗时 ≤ 800 ms 冷启动,AGC 自动采集
下载成功率 ≥ 99% CDN 链路异常会报警

7. 专家锦囊:命令行重签名、CI/CD 模板、自动化合规扫描

7.1 CI/CD 极速模板(GitHub Actions)

name: HarmonyOS Release
on:
  push:
    tags: ['v*']
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: huawei-actions/setup-deveco@v3   # 官方镜像
      - run: npm ci
      - run: hvigorw assembleRelease
      - run: |
          java -jar hap-sign-tool.jar sign-app \
            -keyAlias ${{ secrets.KEY_ALIAS }} \
            -keystoreFile <(echo ${{ secrets.P12 }} | base64 -d) \
            -profileFile <(echo ${{ secrets.P7B }} | base64 -d) \
            -certFile <(echo ${{ secrets.CER }} | base64 -d) \
            -inFile entry-default-signed.hap \
            -outFile entry-release.hap
      - uses: huawei-actions/upload-agc@v2
        with:
          appId: ${{ secrets.APP_ID }}
          filePath: entry-release.hap

7.2 自动化合规扫描

npm i -g @hw-agc/compliance-scanner
hw-cs scan --dir entry/src/main/ets --policy latest

输出示例:

🔴 HIGH: 检测到 `getDeviceId()` 未在隐私政策声明
🟡 MEDIUM: 图标圆角半径 0dp,建议 16dp
🟢 PASS: 未使用热更新 API

结语:一张图带走全流程

开发者账号 → 签名证书 → Profile → 打包 → 隐私合规 → 上传 → 审核 → 灰度 → 全量
        ↑           ↑         ↑       ↑        ↑         ↑       ↑      ↑      ↑
      1 天        10 min    5 min   2 min    30 min    1 min   1 天   24 h   手动

记住:签名是根、合规是魂、灰度是盾。一次过审的秘诀就是——提前扫描、提前合规、提前灰度。祝各位 HarmonyOS NEXT 上架一路绿灯,冲榜今日热门!

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐