无需重写,如何将旧Expo应用转为React Native CLI或脱离Expo Go运行?
旧版Expo(SDK 37)运行与转React Native CLI解决方案
一、不依赖Expo Go运行项目的途径
因为Expo Go不再支持SDK 37,最直接的方式是构建独立原生包运行:
- 先安装对应SDK 37的Expo CLI版本:
npm install -g expo-cli@4.12.10(SDK 37适配的CLI版本为4.x系列,此版本为稳定兼容版) - 确认项目根目录的
package.json中,expo版本锁定为37.x,若版本不符,执行npm install expo@37.0.0调整 - 运行构建命令生成独立包:
- Android:
expo build:android,构建完成后下载APK文件,直接安装到真机或模拟器 - iOS:
expo build:ios,构建完成后可通过TestFlight或Xcode安装到设备
- Android:
二、无需重写转换为React Native CLI的方法
通过Expo的eject命令将项目转为裸工作流(Bare Workflow),保留原有JS/TS代码,生成原生工程目录:
- 备份项目代码,避免操作失误导致文件丢失
- 安装适配SDK 37的Expo CLI(同上步骤)
- 在项目根目录执行:
expo eject,按照提示选择"React Native CLI"模式,生成android和ios原生文件夹 - 调整依赖与已弃用函数:
- 锁定React Native版本为0.63.x(SDK 37对应的RN版本),执行
npm install react-native@0.63.4 - 替换Expo已弃用的API:例如
Expo.Constants替换为expo-constants库,Expo.Camera替换为社区维护的react-native-camera等,优先使用与SDK 37兼容的库版本
- 锁定React Native版本为0.63.x(SDK 37对应的RN版本),执行
- 运行项目:
- Android:
react-native run-android - iOS:先进入
ios目录执行pod install,再运行react-native run-ios
- Android:
注意:eject后项目将脱离Expo Managed Workflow,后续原生端维护需遵循React Native CLI的规范,已弃用函数需逐步替换以保证长期稳定性。
内容的提问来源于stack exchange,提问作者user20212761
相关产品推荐
相关产品推荐

