cli 打包@pack
HBuilderX cli命令行工具, 仅适用于HBuilderX 3.1.5+版本
基本使用@usage
- 首先, 需要启动HBuilderX. (进入HBuilderX安装目录根目录, 终端输入
cli.exe open) - 编辑App打包配置文件(json文件), App打包配置文件
- cli运行, 终端输入
cli pack --config 配置文件
- 打包过程中如果有错误会给出相应的错误信息并中断操作,打包成功后传统打包会输出打包成功的下载地址,安心打包会输出打包成功后的路径。
- cli打包命令行输出
localhost:MacOS hx$ ./cli pack --config /Users/hx/Documents/HBuilderProjects/测试项目/pca/configure.json16:42:37.575 检查云端打包状态...16:42:38.016 检查打包资源...16:42:38.689 正在编译打包资源...16:42:43.570 压缩打包资源...16:42:43.678 向云端发送打包请求...16:42:45.518 项目 pca [__UNI__EB87FB4]的打包状态:时间: 2021-03-08 16:42:45 类型: iOS Appstore 队列中 当前应用 IDFA 已经开启,在提交 AppStore 审核时需要在后台开启 IDFA,[详细操作查看](https://ask.dcloud.net.cn/article/36107)时间: 2021-03-08 16:42:45 类型: Android自有证书 队列中打包成功后会自动返回下载链接。打包过程查询请点菜单发行-查看云打包状态。周五傍晚等高峰期打包排队较长,请耐心等待。如果是为了三方SDK调试,请使用自定义调试基座(菜单运行-手机或模拟器-制作自定义调试基座),不要反复打包。16:42:45.529 项目 pca [__UNI__EB87FB4]的打包状态:时间: 2021-03-08 16:42:45 类型: iOS Appstore 队列中 当前应用 IDFA 已经开启,在提交 AppStore 审核时需要在后台开启 IDFA,[详细操作查看](https://ask.dcloud.net.cn/article/36107)16:43:42.881 项目 pca [__UNI__EB87FB4]打包成功:类型: Android自有证书 下载地址: https://service.dcloud.net.cn/build/download/40dc5910-7fea-11eb-b149-2bda895b13a3 (注意该地址为临时下载地址,只能下载5次)16:43:48.232 项目 pca [__UNI__EB87FB4]的打包状态:时间: 2021-03-08 16:42:45 类型: iOS Appstore 正在云端打包 当前应用 IDFA 已经开启,在提交 AppStore 审核时需要在后台开启 IDFA,[详细操作查看](https://ask.dcloud.net.cn/article/36107)16:44:46.579 项目 pca [__UNI__EB87FB4]打包成功:类型: iOS Appstore 下载地址: https://service.dcloud.net.cn/build/download/40c60580-7fea-11eb-af55-b9c5ccd8a1ee (注意该地址为临时下载地址,只能下载5次)当前应用 IDFA 已经开启,在提交 AppStore 审核时需要在后台开启 IDFA,[详细操作查看](https://ask.dcloud.net.cn/article/36107)
打包配置文件@config
配置文件格式为json,将下面内容保存在文件json文件,编码为utf-8,根据说明配置所需参数
{//项目名字或项目绝对路径"project": "test-pack",//打包平台 默认值android 值有"android","ios" 如果要打多个逗号隔开打包平台"platform":"ios,android",//是否使用自定义基座 默认值false true自定义基座 false自定义证书"iscustom": false,//打包方式是否为安心打包默认值false,true安心打包,false传统打包"safemode": false,//android打包参数"android": {//安卓包名"packagename":"com.test.android",//安卓打包类型 默认值0 0 使用自有证书 1 使用公共证书 2 使用老版证书"androidpacktype":"1",//安卓使用自有证书自有打包证书参数//安卓打包证书别名,自有证书打包填写的参数"certalias":"",//安卓打包证书文件路径,自有证书打包填写的参数"certfile":"",//安卓打包证书密码,自有证书打包填写的参数"certpassword":"",//安卓平台要打的渠道包 取值有"google","yyb","360","huawei","xiaomi","oppo","vivo",如果要打多个逗号隔开"channels":""},//ios打包参数"ios": {//ios appid"bundle":"com.test.ios",//ios打包支持的设备类型 默认值iPhone 值有"iPhone","iPad" 如果要打多个逗号隔开打包平台"supporteddevice":"iPhone,iPad",//iOS使用自定义证书打包的profile文件路径"profile":"",//iOS使用自定义证书打包的p12文件路径"certfile":"",//iOS使用自定义证书打包的证书密码"certpassword":"123"},//是否混淆 true混淆 false关闭"isconfusion":false,//开屏广告 true打开 false关闭"splashads":false,//悬浮红包广告true打开 false关闭"rpads":false,//push广告 true打开 false关闭"pushads":false,//加入换量联盟 true加入 false不加入"exchange":false}
cli pack 参数@params
以下参数选项, 均为
cli pack的选项.
| 参数名称 | 描述 |
|---|---|
| —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.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使用自定义证书打包的证书密码 |
注 如果配置文件与配置参数都配置了相同参数,以命令行参数为准
命令行使用示例@example
# 通过配置文件打包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# ios打包cli pack --project <projectname> --platform iOS --safemode false --iscustom true --ios.bundle <bundle> --ios.supporteddevice iPhone,iPad --ios.isprisonbreak false --ios.profile <profile> --ios.certfile <p12 file> --ios.certpassword <passwd>
扩展@extend
如何读取带有注释的manifest.json文件?@how-to-read-manifest
问题: 有的用户希望打包前,动态修改manifest.json, 但是manifest.json带有注释,怎么办?
回答: js或python都有可以读取带有注释JSON文件的库。
| 语言 | 库 |
|---|---|
| JavaScript | strip-json-comments、jsona |
| Python | commentjson |
