前言

代码写完了,怎么变成用户能装的 app?这中间有"签名 → 打包 → 上架"三步。新手最容易在签名这步卡住——“为啥我打包报错说证书不对?”

这篇文章把发布全流程走一遍,重点讲清签名证书怎么配、打包要注意什么、上架要准备啥。照着做,你能把 app 从代码变成可安装的包。

A hand-drawn doodle illustration on pure white pap

第一步:准备签名证书

HarmonyOS app 必须签名才能安装/上架。签名分两类:

类型 用途 获取
调试证书 本地真机调试 DevEco 自动生成

A hand-drawn doodle illustration on pure white pap

| 发布证书 | 上架应用市场 | 华为开发者联盟申请 |

发布证书在华为开发者联盟后台申请,下载 .p12(证书)和 .p7b(Profile)文件。

第二步:在 build-profile.json5 配置签名

把证书信息写进工程配置:

代码实现

{
  "app": {
    "signingConfigs": [{
      "name": "release",
      "type": "release",
      "material": {
        "certpath": "release.p12",          // 证书文件
        "storePassword": "******",          // keystore 密码
        "keyAlias": "release",              // 密钥别名
        "keyPassword": "******",            // 密钥密码
        "profile": "release.p7b",           // 发布 Profile
        "signAlg": "SHA256withECDSA"
      }
    }],
    "products": [{ "name": "default", "signingConfig": "release" }]
  }
}
  • certpath / profile 指向你申请的证书文件。
  • 密码等敏感信息别提交到公开仓库。
  • signingConfig 绑定到 product,打包时用这个配置签名。

第三步:打包(Build App)

在 DevEco 里:Build → Build App(s)/Hap(s) → 选 release。或者用命令行:

核心代码

A hand-drawn doodle illustration on pure white pap

hvigorw assembleApp --mode module -p product=default

打包成功会生成 .app(或 .hap)文件,这就是可安装的包。注意:

  • debug 包只能装到你自己授权的设备;release 包才能上架。
  • 打包前确认 module.json5 里的 versionName / versionCode 已更新(每次上架版本号要递增)。

第四步:上架应用市场

  1. 登录华为开发者联盟,进入"应用市场"控制台。
  2. 创建应用,填名称、分类、简介、截图、隐私政策链接。
  3. 上传打包好的 app 包。
  4. 提交审核,等待(通常 1~3 个工作日)。
  5. 审核过,正式上架。

审核常见被拒原因:权限理由写不清、隐私政策缺失、功能与描述不符、敏感权限滥用。提前把 module.json5requestPermissions 理由写清楚能省很多往返。

发布检查清单

  • 签名证书正确配置(release)
  • versionCode 比上一版大
  • 所有权限都写了合理 reason
  • 隐私政策链接有效
  • 图标、启动图齐全
  • debug 日志已清理

常见误区(小白必踩)

误区 说明
签名路径/密码错 证书文件、keystore 密码、profile 不匹配,打包直接报错。
versionCode 不递增 每次上架版本号必须比上一版大,否则传不上去。
权限 reason 写不清 审核常见被拒原因就是理由含糊,提前写清楚。
留 debug 日志 上线前清理调试日志,别泄露信息。

下面这段代码可以直接复制到 DevEco Studio 里运行。建议你边读边敲,改一改文末「动手改一改」里的参数,亲眼看看效果。

完整可运行示例:签名配置

build-profile.json5 配置签名,才能打出可安装的包。

完整示例

// build-profile.json5(节选 signingConfigs)
{
  "app": {
    "signingConfigs": [
      {
        "name": "release",
        "type": "HarmonyOS",
        "material": {
          "certpath": "release.p7b",
          "storePassword": "******",
          "keyAlias": "release",
          "keyPassword": "******",
          "profile": "release.p7b",
          "signAlg": "SHA256withECDSA",
          "storeFile": "release.p12"
        }
      }
    ]
  }
}

你会看到什么:配好签名后,Build > Build Hap(s)/APP(s) 能产出带签名的安装包;未配置签名则只能跑 debug,无法上架。

动手改一改

  • 在 DevEco 里用「自动生成签名」一键生成 material,再回填到文件。
  • 区分 debug / release 两套 signingConfigs
  • 用命令行 hvigorw assembleApp --mode release 打 release 包。

写在最后

发布就三步:配签名 → 打 release 包 → 上架审核。卡顿基本都在签名配置:证书路径对不对、密码对不对、Profile 是否匹配包名。

建议第一次发布前,先用 debug 证书在真机跑通,再换 release 证书打包。把上面的检查清单存好,每次发版对着勾一遍,基本一次过审。

Logo

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

更多推荐