开发构建
Content
前情提要
我们认识了Expo的主要工具之一expo cli
,并且用它创建新blank项目,在vscode中安装了expo tools插件来协助我们的开发,写了我们的第一个“Hello world” App应用,最后在模拟器和真机里用Expo Go运行和调试。
今天我们来看Expo Go之外的另一个选项,也就是更接近真实App开发环境的模式:开发构建 development build
简介
开发构建是一种包含 expo-dev-client 包的应用程序的调试版本。通过使用开发构建而不是 Expo Go,你可以完全控制原生运行时,因此可以安装任何原生库、修改任何项目配置或编写自己的原生代码。使用 Expo 开发构建,你正在构建自己的原生应用程序,而使用 Expo Go 则是在沙盒化的原生应用环境中运行项目。
当您运行开发构建时,它将如图所示,只是包含您的应用程序名称和图标,而不是只是程序名"Microfoam"。左右两边分别是iOS和Android画面,最边上是启动器 UI。中间两图是应用程序运行在开发构建中打开可自定义开发者菜单的样子。
expo-dev-client
包替换了 React Native 提供的默认应用内开发工具 UI,提供了更强大和可扩展的应用内 UI。它还添加了对网络调试的支持、对启动更新(如来自 PR 预览)的支持,以及添加了启动器 UI。
启动器 UI 使你无需重新构建应用程序二进制文件即可在开发服务器之间切换。这与持续原生生成(CNG: Continuous Native Generation)结合使用效果很好,因为你只需在修改应用程序中的原生代码时生成一个开发构建,然后你可以在不需要重新构建原生代码的情况下迭代 JavaScript 代码,直到下次需要修改它为止。即使没有 CNG,这种方法也非常适合有专门的原生工程师负责原生运行时和应用程序开发人员专门使用 React 的团队,可以实现与原生应用程序相当的迭代速度,而不会有任何折衷。
[!NOTE] 以上内容来自官方网站,以我的理解和实践,这里提到的工具
expo-dev-client
其实不是构建必须的,构建的主要目的是在我们的模拟器或设备上建立一个独立的应用程序前端,由于脱离了Expo Go,它更可以安装任何原生库、修改任何项目配置或编写自己的原生代码。 实际上当我们在项目中运行了expo prebuild
并expo run
之后,它已经成功完成了开发构建。 我们仍然可以用上节课的开发工具来所见即所得地修改代码,实时调试。