uni-app真机运行和打包的差异
uni-app真机运行和打包的差异
一. 云打包机选择原理
HBuilder和HBuilderX是2个版本,连接不同的打包机。 HBuilderX的升级速度快于HBuilder,HBuilder到2018年底就不再升级了。
注意事项
- 如果IDE没升级,真机运行使用的基座版本是老的,但点了云打包,打包后会变成新的5+引擎了。这会导致打包和运行的区别。
- 使用离线打包时,5+引擎的版本取决于内嵌的5+sdk的版本,与HBuilder版本差异时,也会造成真机运行和打包结果不同。
当前使用的5+引擎版本号,可通过plus.runtime
的API查询。
二. manifest配置
manifest是非常重要的配置文件,每个开发者都应该掌握。manifest详解:http://ask.dcloud.net.cn/article/94
主要分类
- app基础信息:如名称、图标、启动splash图片。真机运行时,这些都是HBuilder调试基座自带的,只有打包时才会变化。
- 应用级的全局配置:如沉浸式状态栏、全屏、横竖方向切换、是否解压资源等。
- 三方sdk配置:大多数三方sdk需要开发者向sdk原厂申请appkey等信息,然后填写到manifest里打包,否则这些sdk不会工作。HBuilder调试基座使用的是DCloud向sdk原厂申请的appkey,打包时还需开发者自己配置。
- 权限:权限也是打包时必须自己配的,减少权限申请有助于安装包被用户接受。
- 首页webview设置:对首页webview的控制无法通过JS操作,只能在manifest里配。
其他注意事项
真机运行时使用plus.runtime.appid
取值是HBuilder,并非真实的appid,此时涉及appid相关的用户反馈模板等功能也不可用。
在uni-app的开发过程中,真机运行和打包是两个重要的环节,它们之间确实存在一些差异。这些差异主要体现在环境配置、性能表现、调试便利性等方面。以下通过代码案例和相关说明来展示这些差异。
真机运行
真机运行是指在开发阶段,将uni-app项目直接部署到真实手机上进行测试。这通常通过HBuilderX IDE或uni-app提供的命令行工具实现。
代码示例:
在HBuilderX中,只需点击“运行”按钮,并选择“真机运行”,IDE会自动编译项目并部署到连接的手机上。这个过程通常不需要额外的代码配置,但你需要确保手机已经通过USB调试连接到电脑,并且已经开启了开发者模式。
# 命令行方式(假设已经安装了HBuilderX CLI)
uni-app-cli run -p android --device
特点:
- 实时调试:可以实时查看代码修改后的效果。
- 性能损耗:由于是在开发模式下运行,可能会有一些性能损耗,比如热更新带来的开销。
- 调试工具:可以使用HBuilderX提供的调试工具,查看日志、网络请求等。
打包
打包是指将uni-app项目编译成原生应用安装包(如APK、IPA),以便发布到应用商店或分发给用户。
代码示例:
在HBuilderX中,点击“发行”菜单,选择“原生App-云打包”或“本地打包”。云打包需要配置相关证书和打包选项,而本地打包则需要安装原生开发环境(如Android Studio、Xcode)。
# 命令行方式(假设已经安装了uni-app CLI和相关原生打包工具)
uni-app-cli build -p android --release
# 注意:这里的命令可能需要根据实际情况调整,比如指定证书路径等。
特点:
- 性能优化:打包后的应用经过了优化,性能通常比真机运行时的开发版本更好。
- 无法实时调试:打包后的应用需要重新安装到手机上,无法实时查看代码修改后的效果。
- 发布准备:打包后的应用包可以直接发布到应用商店或分发给用户。
总结
真机运行和打包是uni-app开发流程中的两个重要环节,它们各有优劣。真机运行适合快速迭代和实时调试,而打包则适合最终发布和性能优化。开发者需要根据实际需求选择合适的方式进行测试和发布。在开发过程中,合理利用这两种方式可以大大提高开发效率和应用质量。