一、环境背景
安装HBuilderX和配置cli环境变量
1.通过 CLI 进行 Android/iOS 云打包,仅适用于 HBuilderX 3.1.5+ 版本。提前安装HBuilderX 3.1.5+ 版本,为了避免版本 兼容性 问题,可以使用版本4.44,该文档基于4.44操作执行
HBuilderX 安装步骤请参考App打包流程
2.确保安装好的HBuilderX目录自带了 cli
操作步骤如下
打开HBuilderX文件所在位置,找到cli.exe


3.更改 环境变量 进入系统设置-找到高级系统设置--环境变量-更改PATH变量,把你cli.exe所在位置的路径,添加进去


4.确保cli.exe生效
win+r键唤起cmd,输入cli --help,一般可以正常运行
如果不可以,则排除对应问题 以下是关于应用程序错误的解决方案,第四步成功可以直接跳过。

例如我远程电脑X安装 在一顿排查之后发现cli只能在windows系统运行,其他任何系统都会有问题,试图尝试安装Microsoft Visual C++ Redistributable
cli.exe 运行需要特定的 Windows 运行库。如果弹出错误代码为 0xc000007b 或提示缺少 msvcp140.dll,请安装:
微软 Visual C++ 可再发行程序包 (Microsoft Visual C++ Redistributable):建议下载并安装 X64 和 X86 两个版本。

如果还是有弹窗 0xc000007b 问题,可以尝试
检查 HBuilderX 目录下的缺失文件
HBuilderX 官方曾提到,某些 Windows 环境下需要手动移动 DLL 文件:
进入 HBuilderX 的解压/安装目录,找到 bin 文件夹。
寻找 msvcr120.dll 和 msvcp140.dll(或其他类似名称的 .dll 文件)。
将这两个文件复制到 HBuilderX 根目录下(即 cli.exe 所在的同级目录)。
远程电脑10.218.20.53 系统不支持,需要进一步排查
Windows Server 2019 环境下,手动安装了运行库依然弹出 0xc000007b,且直接双击 cli.exe 就报错,这通常是因为系统的 DLL 搜索路径被"流氓"文件劫持,或者 系统关键核心 DLL 架构损坏。
除了之前提到的方案,请务必尝试以下进阶操作:
清理 System32 和 SysWOW64 中的手动残留(关键)
很多用户之前为了修复错误,会从网上下载 DLL 直接扔进系统文件夹,这正是 0xc000007b 的头号原因。
前往 C:\Windows\System32 (存放64位文件) 和 C:\Windows\SysWOW64 (存放32位文件)。
检查是否存在 msvcr120.dll、msvcp140.dll、vcruntime140.dll。
尝试将它们暂时重命名(如改成 .bak)。如果系统提示"正在使用无法修改",说明它是系统正常的;如果能轻易改名,说明它是后来手动放进去的干扰项。
原理: 错误的 DLL 位数会导致 cli.exe 加载失败。
使用"全能运行库修复"模式
普通安装包可能无法覆盖已被锁定的受损文件。
下载 DirectX 修复工具 (DirectX Repair) 增强版(建议找 4.x 以上版本)。
打开后点击右上角"菜单 -> 选项 -> 扩展",点击"开始扩展"。
在"检测并修复"里,勾选"强制检测 C++"。
这个工具会对比每一个系统 DLL 的 MD5 校验码,如果发现 System32 里的文件其实是 32 位的,它会强行替换回正版 64 位文件。
二、操作步骤
cli命令官网: https://hx.dcloud.net.cn/cli/pack?id=config
| 参数名称 | 描述 |
|---|---|
| --help | 打包命令帮助 |
| --config | 配置文件绝对路径,配置文件配置,参考配置文件 |
| --project | HBuilder X 里导入的项目名或绝对路径 |
| --platform | 配打包平台,默认值 android,取值有"android","ios"如果要打多个逗号隔开 |
| --iscustom | 是否使用自定义基座 默认值 false, true 自定义基座 false 自定义证书 |
| --safemode | 打包方式是否为安心打包,默认值 false,true 安心打包,false 传统打包 |
| --isconfusion | 是否对配置的 js/nvue 文件进行原生混淆,true 打开 false 关闭 |
| --splashads | 开屏广告,默认值 false, true 打开 false 关闭 |
| --rpads | 悬浮红包广告,默认值 false, true 打开 false 关闭 |
| --pushads | push 广告,默认值 false, true 打开 false 关闭 |
| --exchange | 加入换量联盟,默认值 false, true 加入 false 不加入 |
| --android.packagename | 安卓包名,打安卓包填写 |
| --android.androidpacktype | 安卓打包类型 默认值 0,0 使用自有证书 1 使用公共证书 2 使用 DCloud 老版证书 |
| --android.certalias | 安卓打包证书别名,自有证书打包填写的参数 |
| --android.certfile | 安卓打包证书文件路径,自有证书打包填写的参数 |
| --android.certpassword | 安卓打包证书密码,自有证书打包填写的参数 |
| --android.storepassword | 安卓打包证书库密码(HBuilderx4.41 支持),自有证书打包填写的参数 |
| --android.channels | 安卓平台要打的渠道包,取值有"google","yyb","360","huawei","xiaomi","oppo","vivo",如果要打多个逗号隔开 |
| --ios.bundle | iOS appid 打 ios 包填写 |
| --ios.supporteddevice | iOS 打包支持的设备类型,默认值 iPhone 值有"iPhone","iPad" 如果要打多个逗号隔开打包平台 |
| --ios.isprisonbreak | iOS 打包是否打越狱包,true 打越狱包,false 正式包。HBuilderX 3.2.3+版本起,不再支持构建越狱包。 |
| --ios.profile | iOS 使用自定义证书打包的 profile 文件路径 |
| --ios.certfile | iOS 使用自定义证书打包的 p12 文件路径 |
| --ios.certpassword | iOS 使用自定义证书打包的证书密码 |
命令实例:
# 通过配置文件打包
cli pack --config 配置文件
# Android打包:项目名称(apps)、传统打包、包名(io.test)、打包证书(自有证书、别名:testalias、密码123456)
cli pack --project apps --platform android --safemode false --android.packagename io.test --android.androidpacktype 0 --android.certalias testalias --android.certfile /Users/hx/Desktop/cert/jdk13/test.key --android.certpassword 123456 --android.storepassword 123456
# iOS打包
cli pack --project 项目名称 --platform ios --safemode false --iscustom true --ios.bundle 包名 --ios.supporteddevice iPhone,iPad --ios.isprisonbreak false --ios.profile profile文件路径 --ios.certfile p12文件路径 --ios.certpassword 证书密码
首先打包之前需要注意,该项目执行过手动并且打包可以成功 ,没有问题,项目已经在HBuilderX打开但是没有运行,命令打包请到项目的路径 cmd 输入命令
Android打包:项目名称(apps)、传统打包、包名(io.test)、打包证书(自有证书、别名:testalias、密码123456)
cli pack --project apps --platform android --safemode false --android.packagename io.test --android.androidpacktype 0 --android.certalias testalias --android.certfile /Users/hx/Desktop/cert/jdk13/test.key --android.certpassword 123456 --android.storepassword 123456
iOS打包
cli pack --project 项目名称 --platform ios --safemode false --iscustom true --ios.bundle 包名 --ios.supporteddevice iPhone,iPad --ios.isprisonbreak false --ios.profile profile文件路径 --ios.certfile p12文件路径 --ios.certpassword 证书密码
安卓:
Android
packagename 包名 certalias 别名,certpassword 证书秘钥,storepassword证书库秘钥
iOS
bundle 包名(appid), profile profile文件,certfile p12文件路径,
Android

账号密码码掉了

iOS

注意: cli 的配置只需要在第一次的时候需要,后续直接通过操作步骤中的命令直接打包即可,如果证书有更换,请注意及时变更命令中对应的证书路径,发版的时候记得更改环境信息和版本信息。