cli 打包@pack

HBuilderX cli命令行工具, 僅適用於HBuilderX 3.1.5+版本

基本使用@usage

  1. 首先, 需要啓動HBuilderX. (進入HBuilderX安裝目錄根目錄, 終端輸入cli.exe open)
  2. 編輯App打包配置文件(json文件), App打包配置文件
  3. cli運行, 終端輸入
    1. cli pack --config 配置文件
  4. 打包過程中如果有錯誤會給出相應的錯誤信息並中斷操作,打包成功後傳統打包會輸出打包成功的下載地址,安心打包會輸出打包成功後的路徑。
  5. cli打包命令行輸出
    1. localhost:MacOS hx$ ./cli pack --config /Users/hx/Documents/HBuilderProjects/測試項目/pca/configure.json
    2. 16:42:37.575 檢查雲端打包狀態...
    3. 16:42:38.016 檢查打包資源...
    4. 16:42:38.689 正在編譯打包資源...
    5. 16:42:43.570 壓縮打包資源...
    6. 16:42:43.678 向雲端發送打包請求...
    7. 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自有證書 隊列中
    8. 打包成功後會自動返回下載鏈接。打包過程查詢請點菜單發行-查看雲打包狀態。週五傍晚等高峯期打包排隊較長,請耐心等待。如果是爲了三方SDK調試,請使用自定義調試基座(菜單運行-手機或模擬器-製作自定義調試基座),不要反覆打包。
    9. 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)
    10. 16:43:42.881 項目 pca [__UNI__EB87FB4]打包成功:
    11. 類型: Android自有證書 下載地址: https://service.dcloud.net.cn/build/download/40dc5910-7fea-11eb-b149-2bda895b13a3 (注意該地址爲臨時下載地址,只能下載5次)
    12. 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)
    13. 16:44:46.579 項目 pca [__UNI__EB87FB4]打包成功:
    14. 類型: 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,根據說明配置所需參數

  1. {
  2. //項目名字或項目絕對路徑
  3. "project": "test-pack",
  4. //打包平臺 默認值android 值有"android","ios" 如果要打多個逗號隔開打包平臺
  5. "platform":"ios,android",
  6. //是否使用自定義基座 默認值false true自定義基座 false自定義證書
  7. "iscustom": false,
  8. //打包方式是否爲安心打包默認值false,true安心打包,false傳統打包
  9. "safemode": false,
  10. //android打包參數
  11. "android": {
  12. //安卓包名
  13. "packagename":"com.test.android",
  14. //安卓打包類型 默認值0 0 使用自有證書 1 使用公共證書 2 使用老版證書
  15. "androidpacktype":"1",
  16. //安卓使用自有證書自有打包證書參數
  17. //安卓打包證書別名,自有證書打包填寫的參數
  18. "certalias":"",
  19. //安卓打包證書文件路徑,自有證書打包填寫的參數
  20. "certfile":"",
  21. //安卓打包證書密碼,自有證書打包填寫的參數
  22. "certpassword":"",
  23. //安卓平臺要打的渠道包 取值有"google","yyb","360","huawei","xiaomi","oppo","vivo",如果要打多個逗號隔開
  24. "channels":""
  25. },
  26. //ios打包參數
  27. "ios": {
  28. //ios appid
  29. "bundle":"com.test.ios",
  30. //ios打包支持的設備類型 默認值iPhone 值有"iPhone","iPad" 如果要打多個逗號隔開打包平臺
  31. "supporteddevice":"iPhone,iPad",
  32. //iOS使用自定義證書打包的profile文件路徑
  33. "profile":"",
  34. //iOS使用自定義證書打包的p12文件路徑
  35. "certfile":"",
  36. //iOS使用自定義證書打包的證書密碼
  37. "certpassword":"123"
  38. },
  39. //是否混淆 true混淆 false關閉
  40. "isconfusion":false,
  41. //開屏廣告 true打開 false關閉
  42. "splashads":false,
  43. //懸浮紅包廣告true打開 false關閉
  44. "rpads":false,
  45. //push廣告 true打開 false關閉
  46. "pushads":false,
  47. //加入換量聯盟 true加入 false不加入
  48. "exchange":false
  49. }

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

  1. # 通过配置文件打包
  2. cli pack --config 配置文件
  3. # android打包: 項目名稱(apps)、傳統打包、包名(io.test)、打包證書(自有證書、別名:testalias、密碼123456)
  4. 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
  5. # ios打包
  6. 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-commentsjsona
Python commentjson