欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.csdn.net

Flutter 三方库 inno_bundle 的鸿蒙化适配指南 - 实现 Windows 桌面版与鸿蒙跨屏协作工具的自动化打包、打造专业级安装包部署方案、提升鸿蒙生态桌面端的软件分发体验

在这里插入图片描述

前言

虽然我们致力于移动端(OpenHarmony)的开发,但许多完善的鸿蒙应用往往伴随着 Windows 桌面版的辅助工具(如跨屏连接助手、数据同步工具)。在开发 Windows 桌面端时,如何将其打包成一个专业、美观、带有华为/鸿蒙风格的安装程序?inno_bundle 是一个专门为 Flutter 桌面应用设计的自动化打包工具,它基于经典的 Inno Setup。本文将教你如何在鸿蒙跨端开发中,利用 inno_bundle 极速完成桌面辅助软件的发布过程。

一、原原理析 / 概念介绍

1.1 基础原理/概念介绍

inno_bundle 本质上是一个桥接工具。它读取 Flutter 项目配置文件,自动生成符合 Inno Setup 规范的 .iss 脚本,并调用本地编译引擎生成最终的 .exe 安装包。

Flutter Windows 源码

inno_bundle 扫描

生成安装脚本 .iss

资源打包: 包含鸿蒙联动驱动

Inno Setup 编译器

生成的 .exe 桌面安装程序

1.2 为什么在鸿蒙项目(跨端桌面辅助)中使用它?

  1. 傻瓜式操作:无需手动学习复杂的 Inno Setup 脚本语言。
  2. 支持自定义图标:轻松为生成的 Windows 工具打上鸿蒙 OS 的品牌标识。
  3. 注册表关联:在桌面端通过打包脚本,自动注册鸿蒙设备特定的连接协议(如 harmony-link://)。
功能 手动拷贝 Release 目录 inno_bundle 打包
安装体验 差(需用户手动解压) 极佳(标准向导引导)
卸载支持 困难(残留多) 一键彻底卸载
依赖处理 易缺失 .dll 全自动化采集依赖库

二、鸿蒙辅助端基础指导

2.1 适配情况

  1. 是否原生支持?:是,作为构建工具运行于开发环境。
  2. 环境依赖:开发机必须安装有 Inno Setup 6.0+ 版本。
  3. 平台:专用于处理 Flutter For Desktop (Windows) 的打包。

2.2 核心初始化逻辑

在项目 pubspec.yaml 中配置打包参数:

inno_bundle:
  app_name: "鸿蒙跨屏助手"
  app_version: "1.0.0"
  publisher: "HappyPhper 鸿蒙工作室"
  # 指向您的鸿蒙风格 Logo
  app_icon_path: "assets/harmony_logo.ico"

三 : 核心 API / 功能详解

3.1 自动化权限与安装路径配置

设定默认安装在 Program Files 目录下,并自动创建桌面快捷方式。

在这里插入图片描述

3.2 深度控制:在安装过程中预装鸿蒙驱动

# 在打包脚本中注入预装逻辑
# 确保用户安装后,PC 具备识别鸿蒙主机的驱动能力
languages:
  - name: "Chinese"

四、典型应用场景

4.1 场景一:鸿蒙手机文件管理 PC 插件

将生成的 exe 文件发布到官网,用户在 PC 安装后,即可通过 USB 或 Wi-Fi 管理鸿蒙手机内的图片与视频。

# 汉化示例:一键打包输出
fvm flutter pub run inno_bundle:build --release

在这里插入图片描述

4.2 场景二:桌面版“鸿蒙智慧屏”投屏工具

为大屏设备开发的投屏接收端,通过 inno_bundle 实现极简的安装部署。

五、OpenHarmony 平台适配挑战(侧重环境配套)

5.1 安装过程中可能拦截的杀毒软件告警

由于打包出的 exe 未经过微软签名,在 Windows 下可能会被警告并影响与鸿蒙设备的初次连接。
解决方案技巧:在打包配置中引导用户手动添加信任,或者建议开发者在发布前进行数字签名。

5.2 资源文件的路径编码

如果在安装脚本中包含中文路径,可能会导致旧版 Windows 系统下的安装失败。
优化建议:在 inno_bundle 的配置中,务必显式声明使用 UTF-8 编码。

六、综合实战演示

// 示例:在 Windows 代码中处理与鸿蒙的基础通信逻辑
void main() {
  runApp(DesktopHarmonyApp());
}

// 通过 inno_bundle 打包时的命令行执行
// 1. 确保 flutter windows 编译通过
// flutter build windows
// 2. 运行打包命令
// flutter pub run inno_bundle:build

在这里插入图片描述

七、总结

inno_bundle 让每一个鸿蒙开发者通过极低的成本,就能构建出具备专业水准的 Windows 辅助软件。在“鸿蒙+桌面”这种典型的跨端协同场景下,一个优秀的安装程序是用户感知应用专业度的“第一印象”。掌握这一打包利器,将助力您的鸿蒙生态应用在桌面侧也能拥有丝滑、可靠的落地体验。

[!TIP]
推荐将打包生成的 Output 目录加入缓存,避免每次构建都完全重新扫描资源。

Logo

作为“人工智能6S店”的官方数字引擎,为AI开发者与企业提供一个覆盖软硬件全栈、一站式门户。

更多推荐