HarmonyOS鸿蒙Next中flutter怎么构建出不带签名的鸿蒙包?
HarmonyOS鸿蒙Next中flutter怎么构建出不带签名的鸿蒙包? 目前需要先构构建一个裸的不带签名信息的包,然后流水线再去签名
但是执行 flutter build app --release
好像无法构建出无签名的包
有什么方式能构建吗?
可以通过 flutter build app --no-codesign 只构建出无签名包
不过目前只有3.22.0版本支持这个指令,3.27.5不支持
https://gitcode.com/openharmony-tpc/flutter_flutter/pull/579
更多关于HarmonyOS鸿蒙Next中flutter怎么构建出不带签名的鸿蒙包?的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

使用deveco打开flutter下的ohos工程,build app的时候 会在ohos工程目录下的build/outputs/default/ohos-defualt-unsigned.app下,其中ohos-defualt-unsigned.app就是未签名的包

这种不是很符合我的场景哈,我是在流水线上构建的,所有需要只构建出无签名包,在把无签名包拿去签名,构建出制品
不过目前我已经找到方式了哈, 可以通过 flutter build app --no-codesign 只构建出无签名包,
在HarmonyOS Next中,Flutter暂不支持直接构建不带签名的鸿蒙包。鸿蒙应用必须经过签名才能安装和运行。目前Flutter for HarmonyOS仍处于适配阶段,构建流程需遵循鸿蒙的签名机制。
在HarmonyOS Next中,Flutter工具链目前默认会为构建的App包(.app文件)自动生成并使用调试签名。要构建一个不带签名信息的“裸包”,以便在后续的CI/CD流水线中进行正式签名,你需要通过修改Flutter构建配置来实现。
核心方法是配置Flutter项目的 android 目录(虽然目标是HarmonyOS,但Flutter构建流程仍会参考此配置)。具体步骤如下:
-
定位签名配置文件:在您的Flutter项目目录下,找到
android/app/build.gradle.kts(如果使用Kotlin DSL)或android/app/build.gradle(Groovy DSL)文件。 -
修改构建类型配置:在
buildTypes块中,找到或创建release构建类型。你需要将其配置为不进行签名(signingConfig设置为null)且不启用V1/V2签名(这是Android的签名方案,但会影响输出包的签名状态)。以Groovy DSL (
build.gradle) 为例:android { ... buildTypes { release { // 关键配置:将签名配置设置为 null signingConfig null // 确保禁用Android签名方案,这有助于生成未签名的包 v1SigningEnabled false v2SigningEnabled false v3SigningEnabled false v4SigningEnabled false } } }以Kotlin DSL (
build.gradle.kts) 为例:android { ... buildTypes { getByName("release") { // 关键配置:将签名配置设置为 null signingConfig = null // 确保禁用Android签名方案 isV1SigningEnabled = false isV2SigningEnabled = false isV3SigningEnabled = false isV4SigningEnabled = false } } } -
执行构建命令:完成配置后,在项目根目录运行标准的Flutter构建命令:
flutter build app --release此命令现在会基于修改后的Gradle配置,生成一个未经过签名的HarmonyOS App包。
-
查找输出文件:构建生成的未签名App包(.app文件)默认位于
build/app/outputs/hap/release/目录下。你可以将此文件提供给后续的流水线,使用HarmonyOS的正式签名证书进行签名。
重要说明:此方法利用了Flutter for HarmonyOS当前构建流程的底层机制。由于HarmonyOS Next的Flutter工具链仍在持续演进,具体的配置方式或构建产物路径在未来版本中可能会有调整。如果遇到问题,请核对您使用的Flutter for HarmonyOS插件或工具的版本文档。

