HarmonyOS 鸿蒙Next Flutter如何使用release证书构建包 鸿蒙场景化案例
HarmonyOS 鸿蒙Next Flutter如何使用release证书构建包 鸿蒙场景化案例
【 问题现象】
build-profile.json5已经配置了两个证书default和release,但无论开发时执行flutter run还是执行flutter build app --release 命令都是使用的default证书,无法使用release证书。
【解决方案】
当前鸿蒙Flutter的版本为3.7.12,已支持多目标构建,操作步骤如下:
1、 配置多product和签名,参考文档
(1) 在ohos目录下的build-profile.json5文件增加release证书配置项,其中release配置的是发布证书。
"signingConfigs": [
{
"name": "default",
"type": "HarmonyOS",
"material": {
"certpath": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.cer",
"storePassword": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"keyAlias": "debugKey",
"keyPassword": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"profile": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.p7b",
"signAlg": "SHA256withECDSA",
"storeFile": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.p12"
}
},
{
"name": "release", // 此处为release发布证书
"type": "HarmonyOS",
"material": {
"certpath": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.cer",
"storePassword": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"keyAlias": "release",
"keyPassword": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"profile": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.p7b",
"signAlg": "SHA256withECDSA",
"storeFile": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.p12"
}
}
]
<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 4px; right: 8px; font-size: 14px;">复制</button>
(2) 配置用于发布的product,证书指定release。
"products": [
{
"name": "default",
"signingConfig": "default",
"compatibleSdkVersion": "5.0.0(12)",
"runtimeOS": "HarmonyOS",
"buildOption": {
"strictMode": {
"caseSensitiveCheck": true,
"useNormalizedOHMUrl": true
}
}
},
{
// 用于发布的product配置,指定release证书
"name": "release",
"signingConfig": "release",
"compatibleSdkVersion": "5.0.0(12)",
"runtimeOS": "HarmonyOS",
}
]
<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 4px; right: 8px; font-size: 14px;">复制</button>
2、Flutter编译指定product
Flutter构建命令新增了flavor参数,这个参数可以指定步骤中的正式发布的product,命令如下:
flutter build hap [--flavor myflavor]
<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 4px; right: 8px; font-size: 14px;">复制</button>
以release为例,构建使用如下命令:
flutter build hap --flavor release
<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 4px; right: 8px; font-size: 14px;">复制</button>
【总结】
鸿蒙Flutter的多目标构建基于鸿蒙工程自身提供的能力,flutter模块最终是以flutter.har文件方式被鸿蒙工程所引用。
flutter build hap --flavor release
start hap build...
Flavor "release" not exists in file
Hvigor build failed to produce an hap file. It’s likely that this file was generated under /Users/xxxx/ohos/xxxx/ohos/./entry,
but the tool couldn’t find it.
<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>
请问出现这个如何解决 ?
看错误信息Flavor “release” not exists in file
ohos目录下build-profile.json5文件里面的products配置项增加release了吗?
配置了
配置文件能贴一下不
作为IT专家,针对HarmonyOS 鸿蒙Next Flutter如何使用release证书构建包的问题,以下是一个具体的操作步骤:
- 确保已存在有效的发布证书。若不存在,需要在华为开发者网站(https://developer.huawei.com/consumer/cn/service/josp/agc/index.html#/)中创建。创建过程中,需要生成Key和CSR,并下载相应的cer文件和Profile文件。
- 在DevEco Studio中,打开需要构建的项目,进入“File->Project Structure”,设置签名信息,包括Key Store file、Password、Alias等,这些信息应与生成的Key和下载的cer文件相匹配。
- 设置构建模式为release,然后执行构建操作,通常是通过“Build->Build Hap(s)/APP(s)->Build APP(s)”进行。
- 构建完成后,release包会生成在项目的build目录下,找到已签名的release包进行安装和测试。
此外,鸿蒙场景化案例可以参考美团外卖MTFlutter团队的实践,他们成功实现了Flutter对于鸿蒙系统的原生支持,并分享了适配过程中的技术细节和挑战。
请注意,如果在操作过程中遇到问题,建议检查签名证书是否有效、构建过程是否遵循HarmonyOS的签名规范等。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html。