HarmonyOS鸿蒙Next中如何为应用生成签名证书?

HarmonyOS鸿蒙Next中如何为应用生成签名证书? 签名证书是应用上架的必备条件,本文介绍如何使用 DevEco Studio 或命令行工具生成签名证书,以及证书的配置和使用方法。

3 回复

一、证书类型说明

证书类型 用途 有效期
调试证书 开发测试阶段 1年
发布证书 应用上架发布 有效期较长

二、准备工作

1. 注册华为开发者账号

地址:https://developer.huawei.com

完成实名认证(个人/企业)

2. 创建应用

进入 AppGallery Connect

创建项目 → 添加应用

记录 包名(Bundle ID)

三、生成签名证书(完整流程)

步骤1:生成密钥库文件(.p12)

方式A:使用 keytool 命令

# 生成密钥库
keytool -genkeypair -alias "mykey" -keyalg EC -sigalg SHA256withECDSA \
  -dname "CN=你的名字,OU=部门,O=公司,L=城市,ST=省份,C=CN" \
  -keystore harmony.p12 -storetype pkcs12 \
  -storepass 123456 -keypass 123456 -validity 36500

# 参数说明:
# -alias: 密钥别名
# -keyalg EC: 使用椭圆曲线算法(鸿蒙要求)
# -sigalg SHA256withECDSA: 签名算法
# -keystore: 输出文件名
# -storepass: 密钥库密码
# -keypass: 密钥密码
# -validity: 有效期(天)

方式B:使用 DevEco Studio

打开 DevEco Studio

Build → Generate Key and CSR

填写信息,生成 .p12 文件

步骤2:生成证书请求文件(.csr)

# 从密钥库生成 CSR
keytool -certreq -alias "mykey" -keystore harmony.p12 \
  -storetype pkcs12 -file harmony.csr

或在 DevEco Studio 中同时生成。

步骤3:在 AppGallery Connect 申请证书

登录 AppGallery Connect

用户与访问 → 证书管理

点击「新增证书」

上传 .csr 文件

选择证书类型(调试/发布)

下载生成的 .cer 证书文件

步骤4:申请 Profile 文件

AppGallery Connect → 证书管理 → Profile管理

点击「添加」

选择:

类型:调试/发布

证书:选择刚才的证书

设备:调试证书需要添加测试设备UDID

应用:选择你的应用

下载 .p7b 文件

四、配置签名(uni-app 项目)

manifest.json 配置

{
  "app-harmony": {
    "signingConfigs": {
      "debug": {
        "storeFile": "harmony/debug.p12",
        "storePassword": "123456",
        "keyAlias": "mykey",
        "keyPassword": "123456",
        "signAlg": "SHA256withECDSA",
        "profile": "harmony/debug.p7b",
        "certpath": "harmony/debug.cer"
      },
      "release": {
        "storeFile": "harmony/release.p12",
        "storePassword": "your_password",
        "keyAlias": "mykey",
        "keyPassword": "your_password",
        "signAlg": "SHA256withECDSA",
        "profile": "harmony/release.p7b",
        "certpath": "harmony/release.cer"
      }
    }
  }
}

文件目录结构

项目根目录/
├── harmony/
│   ├── debug.p12      # 调试密钥库
│   ├── debug.cer      # 调试证书
│   ├── debug.p7b      # 调试Profile
│   ├── release.p12    # 发布密钥库
│   ├── release.cer    # 发布证书
│   └── release.p7b    # 发布Profile
└── manifest.json

五、DevEco Studio 配置

build-profile.json5

{
  "app": {
    "signingConfigs": [
      {
        "name": "debug",
        "type": "HarmonyOS",
        "material": {
          "storePassword": "123456",
          "certpath": "harmony/debug.cer",
          "keyAlias": "mykey",
          "keyPassword": "123456",
          "profile": "harmony/debug.p7b",
          "signAlg": "SHA256withECDSA",
          "storeFile": "harmony/debug.p12"
        }
      },
      {
        "name": "release",
        "type": "HarmonyOS",
        "material": {
          "storePassword": "your_password",
          "certpath": "harmony/release.cer",
          "keyAlias": "mykey",
          "keyPassword": "your_password",
          "profile": "harmony/release.p7b",
          "signAlg": "SHA256withECDSA",
          "storeFile": "harmony/release.p12"
        }
      }
    ]
  }
}

六、获取设备 UDID(调试证书需要)

方式1:DevEco Studio

连接设备

工具栏显示设备信息

复制 UDID

方式2:命令行

hdc shell bm get --udid

方式3:设备上查看

设置 → 关于手机 → 状态信息 → 设备标识

七、常见问题

Q1:签名验证失败?

检查清单:

□ .p12、.cer、.p7b 三个文件是否匹配 □ 密码是否正确 □ 包名是否与 Profile 中一致 □ 调试证书是否添加了设备 UDID

Q2:证书过期怎么办?

重新生成 CSR → 申请新证书 → 更新 Profile → 重新打包

Q3:换电脑开发怎么办?

把以下文件拷贝到新电脑:

.p12 密钥库文件 .cer 证书文件 .p7b Profile 文件

Q4:发布证书和调试证书的区别?

对比项 调试证书 发布证书
用途 开发测试 应用上架
设备限制 需要添加UDID 无限制
有效期 1年 较长
安装方式 仅限注册设备 任意设备

八、安全建议

密码管理

  1. 不要把密码写在代码里
  2. 使用环境变量或配置文件
  3. .p12 文件不要提交到 Git

.gitignore 配置

# 签名文件
harmony/*.p12
harmony/*.cer
harmony/*.p7b

# 或整个目录
harmony/

环境变量方式

# 设置环境变量
export HARMONY_STORE_PASSWORD=your_password
export HARMONY_KEY_PASSWORD=your_password

// 配置中引用
{
  "storePassword": "${HARMONY_STORE_PASSWORD}",
  "keyPassword": "${HARMONY_KEY_PASSWORD}"
}

九、快速操作清单

□ 1. 注册华为开发者账号并实名认证 □ 2. 在 AppGallery Connect 创建应用 □ 3. 生成 .p12 密钥库文件 □ 4. 生成 .csr 证书请求文件 □ 5. 上传 CSR 申请证书,下载 .cer □ 6. 申请 Profile,下载 .p7b □ 7. 配置 manifest.json 或 build-profile.json5 □ 8. 打包测试

一句话:生成 .p12 → 导出 .csr → 申请 .cer 和 .p7b → 配置到项目 → 打包。

更多关于HarmonyOS鸿蒙Next中如何为应用生成签名证书?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,为应用生成签名证书需使用DevEco Studio。操作路径为:打开项目,点击菜单栏“File” > “Project Structure” > “Project” > “Signing Configs”。在“Signing Configs”标签页中,点击“+”添加签名配置。选择“Automatically generate signing”可自动生成证书和密钥。若手动配置,需填写证书存储路径、密码、别名及密钥密码等信息。配置完成后,在构建应用时,该签名配置将自动应用于HAP包。

在HarmonyOS Next中,为应用生成签名证书是确保应用安全性和完整性的关键步骤,也是应用上架到AppGallery Connect的强制要求。以下是生成签名证书的核心方法:

1. 使用DevEco Studio生成(推荐) 这是最高效的方式,尤其适合开发者日常使用。

  • 入口:在项目中,点击菜单栏的 File > Project Structure > Project > Signing Configs
  • 操作
    • Signing Configs 页签下,点击“+”添加一个签名配置。
    • 勾选 “Automatically generate signing”(自动生成签名)。
    • 在弹出的对话框中,设置密钥库密码、密钥密码、密钥别名等信息,并选择证书类型(通常为发布证书)。
    • 点击 OK,DevEco Studio会自动在项目根目录生成一个 .p12.jks 格式的密钥库文件(包含公私钥对和证书请求文件CSR)。
    • 后续在构建发布版本时,可直接在 Build > Build HAP(s)/APP(s) > Build APP(s) 中选择此配置进行签名。

2. 使用命令行工具生成 对于需要集成到CI/CD流水线或偏好命令行的开发者,可以使用HarmonyOS提供的 keytool(位于SDK的 toolchains 目录下)。

  • 生成密钥库和证书请求
    keytool -genkeypair -alias "your_alias" -keyalg RSA -keysize 2048 -sigalg SHA256withRSA -validity 9125 -keystore your_keystore.p12 -storetype pkcs12 -storepass your_storepass -keypass your_keypass -dname "CN=your_name, OU=your_unit, O=your_org, L=your_city, S=your_state, C=your_country_code"
    
    • 请替换参数中的别名、密码、名称等信息。-validity 设置证书有效期(天数,如9125约为25年)。
  • 导出证书请求文件(CSR)
    keytool -certreq -alias "your_alias" -keystore your_keystore.p12 -storetype pkcs12 -storepass your_storepass -file your_request.csr
    
    生成的CSR文件可用于向CA机构申请正式证书(HarmonyOS Next应用目前主要使用自签名证书,但流程保留此能力)。

3. 证书的配置与使用

  • 在项目中配置:在模块级的 build-profile.json5 文件中,配置 signingConfig 字段,指向你的密钥库文件路径、密码和别名。
  • 用于应用发布:在AppGallery Connect中创建应用后,在“我的应用”中点击“签名管理”,可上传已有的证书(.p12.jks文件及其密码)或由平台自动生成。注意:正式上架应用的签名证书一旦使用,不可更改,否则将导致应用无法更新。

关键注意事项

  • 保管好密钥库文件和密码:这是应用的身份凭证,丢失将无法更新应用。
  • 区分调试与发布证书:调试证书由DevEco Studio自动管理,仅用于开发测试;发布证书必须由开发者生成并妥善保管。
  • HarmonyOS Next的签名机制 基于公钥基础设施(PKI),确保证书与应用的唯一绑定。

总结,对于大多数开发者,直接在DevEco Studio中通过图形界面自动生成并管理签名证书是最佳实践。在需要自动化脚本或特定定制时,再使用命令行工具。

回到顶部