真机运行使用的是HBuilder自带的,使用DCloud证书打包的调试基座,包括了所有sdk、常用权限配置和方便开发者调试的打包配置。
而云打包则是使用开发者的证书,按照开发者自己配置的sdk、权限、及其他打包配置打包的。
一.云打包机选择原理
HBuilder为正式版和alpha版本,官网DCloud.io下载的是正式版,论坛里官方会发布alpha版。
每次升级前,官方一般都会先放alpha版本出来,然后再正式更新。
这里要注意的是:
- 正式版HBuilder点云打包时连的是正式打包机,而alpha版HBuilder点云打包连的是测试打包机。
- 云打包的2个版本,正式和alpha,都只保留最新版。也就是历史正式版HBuilder云打包连的是正式打包机的最新版,同样历史alpha版云打包连的也是测试打包机的最新版。
- 如果你的HBuilder没升级,你的真机运行使用的基座版本是老的,但点了云打包,打包后会变成新的5 引擎了。这样就会产生打包和运行的区别。
如果使用离线打包,那么5+引擎的版本取决于内嵌的5+sdk的版本,和HBuilder版本产生差异时,也会造成真机运行和打包结果不同。
当前使用的5+引擎版本号,可通过plus.runtime的api查询。
二. manifest配置
manifest是非常重要的配置文件,每个5 开发者都应该掌握manifest详解:http://ask.dcloud.net.cn/article/94
在HBuilder的manifest可视化编辑界面也有上文的链接。
manifest定义了打包的各种配置,主要分几大类:
- app基础信息。比如名称、图标、启动splash图片。所以真机运行时,这些都是HBuilder调试基座自带的,只有打包才变化。
- 应用级的全局配置。比如沉浸式状态栏、全屏、横竖方向切换、是否解压资源。。。
- 三方sdk配置。大多数三方sdk,需要开发者向sdk原厂申请appkey等信息,然后填写到manifest里打包,否则这些sdk不会工作。HBuilder调试基座使用的是DCloud向sdk原厂申请的appkey,打包时还需开发者自己配置。比如分享、微信支付、登陆、推送、地图、语音识别都需要自己申请和配置。
- 权限。权限也是打包时必须自己配的,减少权限申请有助于安装包被用户接受。
- 首页webview设置。对首页webview的控制无法通过js操作,只能在manifest里配。
很多开发者的工程是复制了Hello H5 或Hello mui的示例模板,也使用了相同的manifest,但这个manifest配置不一定适用于开发者,所以建议开发者做项目时新建空工程,自己调整manifest。
其他:
真机运行时使用plus.runtime.appid取值是HBuilder,并非真实的appid,此时涉及appid相关的用户反馈模板等功能也不可用。