本页内容

harmonydeployqt 工具

注意: HarmonyOS 版的Qt 目前处于技术预览阶段,未来版本中可能会发生变化。

为 HarmonyOS 打包 Qt 应用程序涉及许多步骤,因此 Qt 提供了一个工具来为您处理这些工作。构建 CMake 的 `<target>_make_hap ` 目标会自动运行 `harmonydeployqt `,因此通常无需手动调用该命令。完整的打包和部署流程请参阅《构建和部署 HarmonyOS 的 Qt 应用程序》。

工作原理

与androiddeployqt 类似,harmonydeployqt 会收集应用程序运行所需的所有内容,并生成一个可部署的包:

  • 它会收集应用程序的共享库、HarmonyOS 平台插件(libqohos.so )、所需的 Qt 模块和插件,以及针对Qt Quick 应用程序的 QML 模块。
  • 它将这些内容与通过Qt for HarmonyOS CMake API 声明的元数据和权限一起放入 HarmonyOS 应用程序模板中。
  • 它调用 OpenHarmonyhvigor 构建工具,以组装最终的 HarmonyOS 能力包(HAP)。

驱动此过程的设置将通过一个 JSON 配置文件传递给该工具,该文件由 CMake 构建过程为您自动生成。

命令行参数

唯一的必填参数是--input 。通过向harmonydeployqt 传递--help ,也可获取以下列表。

参数描述
--input <file>描述待部署的应用程序及 Qt 安装环境的 JSON 配置文件。必填。
--output <dir>生成的 HarmonyOS 项目的输出目录。
--hvigor <path>用于构建 HAP 的hvigorw 脚本的路径。也可通过QT_HARMONYOS_HVIGOR 环境变量进行设置。
--install使用hdc 将生成的 HAP 安装到已连接的设备上。
--release构建发布配置。默认配置为调试模式。
--no-build生成 HarmonyOS 项目,但跳过 HAP 的构建。
--test-bundle启用测试包模式,将所有测试二进制文件打包到一个 HAP 中。
--verbose启用详细输出。
--depfile <path>将构建系统的依赖项文件写入指定路径。
--depfile-base <dir>依赖文件中相对路径所使用的基目录。
--help显示可用参数列表。

对 HAP 进行签名

HAP必须经过签名才能安装到设备上。您可以通过命令行参数或相应的环境变量提供签名材料。当两者都提供时,该字段将优先采用命令行参数。

参数环境变量描述
--signing-cert-path <p>QT_HARMONYOS_SIGNING_CERT_PATH.cer 证书文件的路径。
--signing-profile <p>QT_HARMONYOS_SIGNING_PROFILE.p7b 配置文件的路径。
--signing-store-file <p>QT_HARMONYOS_SIGNING_STORE_FILE.p12 密钥库的路径。
--signing-key-alias <a>QT_HARMONYOS_SIGNING_KEY_ALIAS密钥库中的密钥别名。
--signing-key-password <s>QT_HARMONYOS_SIGNING_KEY_PASSWORD加密密钥的密码。
--signing-store-password <s>QT_HARMONYOS_SIGNING_STORE_PASSWORD加密密钥库密码。
--signing-alg <alg>QT_HARMONYOS_SIGNING_ALG签名算法。默认值为SHA256withECDSA 。

密码必须是hvigor-encrypted 格式的二进制数据块,而非明文。签名操作采用“全有或全无”原则:如果设置了任何签名输入,则必须提供全部六个必填值(证书、配置文件、密钥库、密钥别名、密钥密码和密钥库密码)。否则,HAP将保持未签名状态。

运行应用程序

在已连接的 HarmonyOS 设备或模拟器上安装并运行生成的 HAP。部署和调试的最便捷方式是在DevEco Studio中打开生成的项目,并使用其运行和调试工具。

有关为 HarmonyOS 打包和部署 Qt 应用程序的更多信息,请参阅《构建和部署 HarmonyOS 的 Qt 应用程序》。

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.