DCloud_App_Array
DCloud_App_Array
  • 发布:2020-11-04 20:57
  • 更新:18 小时前
  • 阅读:1499

HBuilderX App云端打包 - 安心打包使用指南

分类:HBuilderX

概述

过去,App云端打包时需要将应用代码、打包证书等提交到DCloud云端打包机,在云端打包机的原生开发环境中生成安装包apk/ipa。
DCloud云端服务器虽然不会保存开发者应用代码和证书等信息,但开发者可能还是不放心,或者担心在网络传输过程中可能存在拦截泄漏的风险。

而离线打包,不但不方便,还有2个重要功能无法使用:

  1. 原生混淆,保护js代码(因为秘钥的安全问题,离线打包无法使用)
  2. 插件市场的付费原生插件(因为插件版权问题,离线打包无法使用)

HBuilderX2.9.9版本新增安心打包功能,不再提交应用代码及打包证书到云端服务器,同时也减轻云端打包机压力,缩短高峰期云端打包等待时间。

安心打包原理

  • 首次打包
    1. HBuilderX会提交App的模块配置信息到云端,在云端打包机生成原生代码包(不包含应用代码、证书信息)
    2. HBuilderX下载原生代码包,在本地电脑上将应用代码添加到原生代码包中,生成未签名安装包
    3. 缓存原生代码包,用于下次打包复用
    4. 在本地电脑上使用打包证书对未签名安装包进行签名操作,生成安装包
  • 非首次打包
    1. HBuilderX判断缓存的原生代码包是否可以复用,如果修改了App模块配置或影响原生代码包配置操作则转首次打包流程,否则继续下一步
    2. 将修改后的应用代码添加到原生代码包中,生成未签名安装包
    3. 在本地电脑上使用打包证书对未签名安装包进行签名操作,生成安装包

因为大多数打包,并不改动原生部分(主要是manifest),只修改前端代码。此时将无需从云端打包机下载原生包,打包速度会非常快。

安心打包优势

  • 更安全:打包时不提交应用代码、证书等信息
  • 更快速:非首次打包时不用提交云端打包机排队等待,本地直接出包
  • 省流量:减少了打包时提交打包资源,非首次打包时不用下载原生代码包
  • 更便宜:除非使用了体积很大的本地原生插件,否则将难以突破40M的免费打包体积阀值。开发者和DCloud的成本双下降

使用安心打包

新版本HBuilderX云端打包时无需额外操作,默认会勾选“安心打包”,如下图所示:

如果没有安装安心打包插件,会弹出以下提示框,点击“安装”继续

插件安装完成后需重新点击“打包”按钮提交打包

打包完成后自动保存到项目的"unpackage/release/apk/"目录

如果清空了这个目录,那么下次打包将执行首次打包逻辑。

注意事项

  • 目前仅Android平台支持安心打包。iOS暂不支持,后续会补充,目前选iOS会回归传统打包。
  • 自定义调试基座不支持安心打包
  • 使用DCloud老版证书不支持安心打包
  • 使用原生混淆时,配置的待加密js文件需要提交到云端打包机(打包完成后自动清除这些js)
  • 安心打包并非纯离线打包,虽然证书和前端代码不再提交云端打包机,但项目的manifest中的模块配置、本地原生插件、原生混淆配置的前端文件,仍需提交才能出包

FAQ

  • 安心打包是否有免费打包次数限制?
    打包次数限制是为了避免部分开发者过多占用云端打包资源而增加的限流措施,在使用安心打包时,由非首次打包机制生成的安装包由于不占用云端打包资源,所以不会占用云端免费打包次数,也可以理解为安心打包非首次打包无打包次数限制。
4 关注 分享
DCloud_heavensoft 987095529@qq.com DCloud_UNI_linju_json 446225991@qq.com

要回复文章请先登录注册

383188761@qq.com

383188761@qq.com

回复 lufei-99999@163.com :
这几天都这样
18 小时前
jianweitian@qq.com

jianweitian@qq.com

勾选蓝牙模块,没有蓝牙功能了,也提示版本不一致,手机端2.9.12,hbuilderx 2.9.11
4 天前
lufei-99999@163.com

lufei-99999@163.com

安心打包有时候提示编译版本和运行版本不一致,已经是最新的编译环境了
5 天前
TTOOMM

TTOOMM

回复 雨夜敬清秋 :
支持,最好每次wgt打包的时候,能有设置自动增加版本号选项
6 天前
啊是的

啊是的

原生混淆,保护js代码(因为秘钥的安全问题,离线打包无法使用)
既然安全打包,只云打包一次,那之后是怎么确保原生混淆的呢?
2020-11-21 13:36
DCloud_Android_ST

DCloud_Android_ST

回复 lufei-99999@163.com :
appid发下 安心打包的apk也发下
2020-11-19 19:04
lufei-99999@163.com

lufei-99999@163.com

原生插件,提示配置错误,使用云打包就没有问题,求解决。
2020-11-19 15:22
1058566903@qq.com

1058566903@qq.com

安心打包如果有原生插件的话,每次都提示插件错误,不包含此插件,删除重新选本地插件也一样。现在第七版了一直没问题,改用云端打包也没有问题。
2020-11-19 09:46
雨夜敬清秋

雨夜敬清秋

打包时,能否多给一个选项,目前正式包的环境是production,而自定义基座的环境是development,如果要打内部测试包的时候,都要手动修改环境配置然后去勾选打正式包,能否提供一个选项:打测试包,环境对应development。
2020-11-17 09:19
风中奇缘

风中奇缘

安心打包有免费次数的概念吗?
2020-11-14 20:22