添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

中文官网:https://expo.nodejs.cn/get-started/expo-go/

Expo 是一款 开源框架,适用于在 Android、iOS 和 Web 上原生运行的应用。Expo 汇集了移动和 Web 的精华,并支持构建和扩展应用的许多重要功能。

  • 基于React Native的一款上层框架
  • 同时支持Android、iOS 和 Web的跨端开发
  • 提供了Expo CLI脚手架、Expo Go沙箱、EAS 构建、EAS 提交、EAS 更新、Expo Router、Expo module API 等一系列扩展功能
  • 通过Expo,避免了直接对原生开发,原生代码都由Expo构建产出。(但也支持自定义原生内容)
  • Expo SDK 接续了 React Native 核心库的结尾。它提供对许多设备和系统功能的访问,例如音频、条形码扫描、相机、日历、联系人、视频等。它还添加了其他强大的库,如更新、地图、OAuth 身份验证工具等。目前很多主流库都支持Expo,不支持的库也提供了接入方式。

部分操作需要科学上网,比如官网账号注册、本地编译的gradle仓库等

安装第三方库时,建议始终直接使用 npx expo install 而不是 npm install 或 yarn add,因为它允许 Expo CLI 在可能的情况下选择库的兼容版本,并警告你已知的不兼容性。
例如:

npx expo install expo-device

此文记录了Expo的工程搭建、构建应用到Expo Go 沙箱环境中、使用云端远程构建、使用本地构建。

二、使用Expo创建工程和构建

1、使用脚手架和Expo Router模板(也可以不用)初始化项目:

npx create-expo-app@latest --template tabs@50

初始化的项目,自动安装了ReactNative/expo router相关的库
在这里插入图片描述

2、在Expo Go沙箱环境中运行你的应用

Expo Go 是一个免费的 open-source 沙箱,用于在 Android 和 iOS 设备上学习和试验 React Native。可以在Goole应用商店下载(国内应用商店好像没有),或者后续步骤会自动安装。
注意:Expo不建议使用 Expo Go 来构建生产质量的应用,也就是说这个沙箱环境用来写写demo学习啥的,不要用来做正式开发

  • 需要先将设备通过adb连接
adb reverse tcp:8081 tcp:8081
  • 启动开发服务器
npm start 

当你运行上述命令时,Expo CLI 启动 Metro 打包器,该打包器是一个 HTTP 服务器,它使用 Babel 编译应用的 JavaScript 代码;
在这里插入图片描述

  • 在你的设备上运行应用
    按a选择运行到android后,会在你的设备上安装Expo Go的应用,接下来,需要将Metro 编译后的js代码在 Expo Go沙箱环境运行。
  • 方式1:在Expo Go 应用主页选项卡上的扫描二维码,然后扫描你在终端中看到的二维码。
  • 方式2:在Expo Go 应用主页选项卡上的Enter URL manually,然后键入启动的开发服务器连接。

3、开发环境构建,创建开发版本

  • Expo 推荐构建开发版本进行项目开发,而不是使用Expo Go 沙箱环境。
  • Expo的开发版本,指的是是包含 expo-dev-client 包的应用的调试版本,可以完全控制原生运行时,可以使用 安装任何原生库、修改任何项目配置 或 编写自己的原生代码,构建出自己的原生应用。
  • expo-dev-client 替换了RN默认的应用内开发工具UI,提供了扩展功能
  • 为工程安装expo-dev-client包:
npx expo install expo-dev-client

3-1、EAS Build构建(远程构建)

a、安装EAS CLI
npm install -g eas-cli
eas login

你可以通过运行 eas whoami 来检查你是否已登录。

c、添加配置
eas build:configure

如果项目中配有为eas添加配置,直接执行eas build,会运行相同的过程。执行完成后会生成eas.json文件:

"cli": { "version": ">= 7.7.0" "build": { "development": { // 表明该构建依赖于 expo-dev-client。这些构建包括开发者工具 "developmentClient": true, // 可以进行内部应用分发 "distribution": "internal" "preview": { "distribution": "internal" "production": {} "submit": { "production": {}

它为每个平台定义了三个名为 “development”、“preview” 和 “production” 的构建配置文件(你可以有多个构建配置文件,如 “production”、“debug”、“testing” 等)。具体配置参考:使用 eas.json 配置 EAS 构建

d、为android应用构建.apk包