HarmonyOS 鸿蒙Next中如何根据实际情况切换defalut和Release进行打包
HarmonyOS 鸿蒙Next中如何根据实际情况切换defalut和Release进行打包 在build.json5文件中配置了defalut和Release签名,但是打包进行上架自检的时候,没有那个Release选项,只有defalut的,想知道如何根据实际情况切换defalut和Release进行打包。
【解决方案】
工程级build-profile.json5文件中新增定制product,分别使用不同的签名证书
“products”: [
{
“name”: “default”,
“signingConfig”: “",
“compileSdkVersion”: "”,
“compatibleSdkVersion”: “",
“runtimeOS”: “HarmonyOS”,
},
{
“name”: “useForDebug”,
“signingConfig”: “useForDebug”,
“compileSdkVersion”: "”,
“compatibleSdkVersion”: “",
“runtimeOS”: “HarmonyOS”,
},
{
“name”: “useForRelease”,
“signingConfig”: “useForRelease”,
“compileSdkVersion”: "”,
“compatibleSdkVersion”: “****”,
“runtimeOS”: “HarmonyOS”,
}
],
右上角product按钮Product 选择useForDebug 来选择使用调试证书的hap ,选择useForRelease->apply 构建出来的APP 则使用发布证书。default 配置项勿删。
module ,applytoProducts 属性中增加useForDebug,useForRelease 两个参数
“modules”: [
{
“name”: “entry”,
“srcPath”: “./entry”,
“targets”: [
{
“name”: “default”,
“applyToProducts”: [
“default”,
“useForDebug”,
“useForRelease”
]
},
]
}
]
建议多目标产物,构建两个产物,debug版本以及release版本,分别配置不同的签名, 点击IDE run按钮左侧的小眼睛图标中切换目标产物和编译模式, 您这边如果已经配置好签名配置, 可以直接在工程级的build-profile.json5文件中,products字段下的signingConfig字段添加签名配置。
关于切换产物,切换product时,还是需要根据您的需求来手动选择 build Mode 为 release 和 debug,该选项默认为<None>,关于多目标产物,可以参考文档配置多目标产物。
更多关于HarmonyOS 鸿蒙Next中如何根据实际情况切换defalut和Release进行打包的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS Next中,通过DevEco Studio的构建配置切换打包模式。在项目级或模块级build-profile.json5文件中,配置"buildMode"参数为"debug"或"release"实现模式切换。使用hvigorw命令配合–mode参数指定构建模式,例如执行hvigorw assemble --mode release进行Release包构建。构建产物会分别生成到debug或release目录下。
在HarmonyOS Next中,可以通过以下方式切换default和Release配置进行打包:
-
在build.json5中配置不同模式: 确保在build.profile中正确定义了default和release模式,例如:
"buildModeSet": { "default": { "signingConfig": "default" }, "release": { "signingConfig": "release" } } -
使用命令行参数指定模式: 在打包时通过
--mode参数指定使用release模式:ohos-build --mode release -
在DevEco Studio中切换构建变体: 在IDE底部点击
Build Variants,在app模块中选择release。 -
检查签名配置: 确认在
signingConfigs中同时配置了default和release,且release配置使用了正式发布证书。
上架自检时若仅显示default选项,通常是因为未正确配置或选择release模式。通过上述方式切换后,打包产物将使用release签名,满足上架要求。

