在用脚手架搭建了一个新的 Expo 项目后,执行 npx expo start 命令,会出现以下内容:
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
█ ▄▄▄▄▄ █▀ ▄▄ ▀▀█▄█▄█▀▀▄▀█ ▄▄▄▄▄ █
█ █ █ █▀▄█▀▄▀█ ▀▀█▀▄▄ █▄█ █ █ █
█ █▄▄▄█ █▀▀▄▄▄▀▄▀▀▄ ▄▄ ▀▄██ █▄▄▄█ █
█▄▄▄▄▄▄▄█▄▀▄█ █▄▀▄█ ▀▄▀ ▀▄█▄▄▄▄▄▄▄█
█▄ ▄ █▄▄▄▀▀█▄▄▀▄▄▄█▀ █▄ ▄▄▀▄█ █▄▀█
██▀ ▀ ▄▄ ▀▀▀██▄▀█▀█ ▀▄█▄ ██ ▀ ▀█
█▄▄ ███▄▄▄▄█▀▀ ▀ ▀▄█▀ ▀ ▄ ▀ ▄▀██ █
█▄██ ▄▄ █ ███▀▄██▀▀ ▄███▄█ ▀▀███
█▀▀ █▀ ▄█▀█▀▀ █▄▄▄█ ▄██▀▄ ▀ ▄▄▀▀▀█
█▄█▄▀ ▀▄█▀ ▄▀█▄▄ █ ▀ ▀▄██ ▀▄██
█ ▀█▄█▄▄ ▄█▀▀▀▄▀▄█▄ █▀▄▀█▄▀▀▄██▀ █
█ █▄▀█▀▄▄ █▀██▀▄▀███▀▀▀██ ▀ ▀ ██
█▄█▄█▄█▄█▀▀▀▀▀▄▀ ▀▄▄▀ █▄█ ▄▄▄ ▀▀▄▀█
█ ▄▄▄▄▄ █▄▄ █▀█▄▄█▄▄▀▀ ▄ █▄█ ▄▀█
█ █ █ █ ▀ ▀▀▄▀▄▄█▀ ▀█▄█ ▄▄ ▀▄▄█
█ █▄▄▄█ █ ▄▄▀▄█▄ █▄█ ▀▄▄▀ █▀▀ ▄██
█▄▄▄▄▄▄▄█▄▄▄▄▄▄█▄█▄▄███▄▄▄▄█▄███▄██
› Scan the QR code above to open in a development build. (Learn more: https://expo.fyi/start)
› Metro: exp+onsketch://expo-development-client/?url=http%3A%2F%2F10.209.144.177%3A8081
› Web: http://localhost:8081
› Using development build
› Press s │ switch to Expo Go
› Press a │ open Android
› Press w │ open web
› Press j │ open debugger
› Press r │ reload app
› Press m │ toggle menu
› shift+m │ more tools
› Press o │ open project code in your editor
› Press ? │ show all commands
一个二维码后面打印了一系列可以在当前 CLI 使用的命令(快捷键)。
Using development build 这句话表示当前是 development build 模式,紧随着下面一句话 Press s | switch to Expo Go,表示我们可以通过 s 切换到 Expo Go 模式,此时二维码会变成 Expo go 模式的二维码。
我用 web 开发来类比说明 Expo Go 和 Development Build 的区别。
想象一下,你写了一个网页,你不需要自己去开发一个 Chrome 浏览器,你只需要把代码放到服务器上,然后让用户用他们手机里现成的 Chrome 打开就行了。
Expo Go 就是那个现成的“Chrome 浏览器”。它是一个已经在 App Store / Google Play 上架的 App。它里面预装了 Expo 官方提供的所有标准功能(比如相机、地图、定位、通知等 SDK)。开发体验:你写的 JS/React 代码,通过 Wi-Fi 传输给 Expo Go,它立马就能运行渲染,就像 Web 的热更新(HMR)一样快。
✅ 适用场景:
❌ 局限性:
假设你的网页用到了一个极其特殊的黑科技,Chrome 浏览器本身不支持,你需要修改 Chrome 的源码,给它加个补丁,重新编译一个专属的“MyChrome”浏览器才能跑你的网页。
Development Build 就是那个你编译出来的“MyChrome”。它是一个你自己构建的、安装在手机上的 .apk (Android) 或 .ipa (iOS) 开发包。它包含了你项目所需的特定原生代码依赖。
✅ 适合场景:
❌ 缺点:
什么时候会启用 Development Build 模式呢?
当项目中安装了
expo-dev-client这个库时,expo cli 会默认以为我们要搞高端操作,会自动启动 development build 模式。如果启动了 Development build 模式,通过s可以切换到 Expo Go 模式。
总结:
好的程序是调试出来的
在 web 端,按 F12 可以打开 chrome dev tool 进行调试,那么 Expo Go 如何进行调试呢?
1、用 Expo Go 模式启动项目
2、手机 Expo Go 扫描二维码,打开开发的 app

3、摇晃手机,弹出开发工具

4、点击 Open DevTools,电脑会弹出 debug 工具

(完)