HarmonyOS鸿蒙Next中在build.json5文件中配置了defalut和Release签名,但是打包进行上架自检的时候,没有那个Release选项,只有defalut的,想知道如何根据实际情况切换defalut和Release进行打包。

HarmonyOS鸿蒙Next中在build.json5文件中配置了defalut和Release签名,但是打包进行上架自检的时候,没有那个Release选项,只有defalut的,想知道如何根据实际情况切换defalut和Release进行打包。 在build.json5文件中配置了defalut和Release签名,但是打包进行上架自检的时候,没有那个Release选项,只有defalut的,想知道如何根据实际情况切换defalut和Release进行打包。

7 回复

更多关于HarmonyOS鸿蒙Next中在build.json5文件中配置了defalut和Release签名,但是打包进行上架自检的时候,没有那个Release选项,只有defalut的,想知道如何根据实际情况切换defalut和Release进行打包。的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


背景知识:

打包之前需要注意签名、产品类别、构建模式、打包、查看是否是release包

问题解决:

  • 签名:

生成密钥和证书请求文件

申请发布证书

最后获得: cke_9973.png

去Project Structure 下配置证书: previewableImage配置到根build-profile.json5文件中: cke_18617.png

  • 产品类别

cke_10495.png

上诉可以在根build-profile.json5配置多个,确定不同的signingConfig参数 cke_29421.png

  • 构建模式

选择release版本 cke_53456.png

  • 打包

发布选择app形式: cke_62443.png.

  • 查看是否是release包

通过查询打出来的app包里面的hap下面的module.json文件的debug=false cke_103182.png

先在这里配置好,紧接着在

cke_717.png

cke_1017.png

打包的时候选择选下这个,以及旁边的 Build Mode,就可以了。

希望HarmonyOS能继续推出更多实用的功能,满足用户的不同需求。

你好,构建时使用哪个签名,由 build-profile.json5 中 products 里的 “signingConfig”: “default” 确定,所以在打包时,可以将 “default” 改为 “Release”。

也可以尝试根据不同的部署环境、目标人群和运行环境,定制构建多目标产物,将同一应用定制为不同版本。

参考:如何定制构建多目标产物为不同的product产物配置签名信息

在HarmonyOS Next中,若打包时仅显示default签名选项,通常是因为未正确配置Release构建类型。请检查build.json5文件,确保在"buildMode"中已明确定义Release模式,并关联对应的签名配置。同时,确认在DevEco Studio的构建配置中选择了Release方案。

在HarmonyOS Next中,build.json5文件中的签名配置需要与构建模式(buildMode)正确关联,才能在打包时出现对应的签名选项。

根据你的描述,问题很可能在于构建模式与签名配置的映射关系未正确设置。请按以下步骤检查和操作:

1. 检查 build.json5 中的签名配置

确保你的 signingConfigs 部分已正确配置了 defaultrelease 两个配置项,并且 release 配置项的名称(例如 "release")与你期望的完全一致。

一个典型的配置示例如下:

"signingConfigs": [
  {
    "name": "default",
    "material": {
      "certpath": "sign/default.cer",
      "storePassword": "xxxxxx",
      "keyAlias": "xxxxxx",
      "keyPassword": "xxxxxx",
      "storeFile": "sign/default.p12",
      "profile": "sign/default.p7b",
      "signAlg": "SHA256withECDSA"
    }
  },
  {
    "name": "release", // 注意此名称
    "material": {
      "certpath": "sign/release.cer",
      "storePassword": "xxxxxx",
      "keyAlias": "xxxxxx",
      "keyPassword": "xxxxxx",
      "storeFile": "sign/release.p12",
      "profile": "sign/release.p7b",
      "signAlg": "SHA256withECDSA"
    }
  }
]

2. 检查构建模式(buildProfiles)与签名的映射

关键在于 buildProfiles 部分。你需要为不同的构建模式(如 debugrelease)指定对应的签名配置名称。

buildProfiles 下的每个配置中,找到 signingConfig 字段,确保其值与你为 release 签名配置设置的 name(例如 "release")相匹配。

"buildProfiles": [
  {
    "name": "debug", // 调试模式
    "signingConfig": "default" // 使用名为"default"的签名配置
  },
  {
    "name": "release", // 发布模式
    "signingConfig": "release" // 使用名为"release"的签名配置
  }
]

3. 在DevEco Studio中切换构建模式进行打包

配置正确后,在DevEco Studio中进行打包时,你需要通过切换 构建变体(Build Variant) 来选择不同的签名。

  • 通常在IDE的底部或侧边栏可以找到 Build Variants 工具窗口。
  • buildProfile 下拉选项中,选择 release(对应上面配置的发布模式)。
  • 当你选择了 release 构建模式后,打包流程会自动关联并使用 buildProfilesrelease 模式所指定的 signingConfig,即你配置的 release 签名。

总结

核心流程是:选择构建模式(如release) -> 该模式映射到特定的签名配置名称(如"release") -> 使用该名称对应的具体签名材料进行打包。

请重点核对 build.json5signingConfigsrelease 配置的 name 字段值,与 buildProfilesrelease 模式下的 signingConfig 字段值是否完全一致。两者必须匹配,才能在打包自检时出现 Release 签名选项。

回到顶部