如何升级Bare Expo架构的React Native 0.64项目至最新稳定版?
Bare Expo架构React Native项目升级指南(从0.64到最新稳定版)
核心升级流程
1. 同步Expo SDK与RN版本
Bare Expo项目的RN版本和Expo SDK强绑定,先通过expo upgrade完成基础依赖同步:
- 先更新全局
expo-cli:npm install -g expo-cli或yarn global add expo-cli - 进入项目根目录执行:
expo upgrade,该命令会自动匹配最新稳定版RN对应的Expo SDK,同步更新expo核心依赖及关联的RN基础包。
2. 用RN官方工具处理核心代码更新
因为是Bare架构,还需借助RN升级工具补全模板文件差异:
- 确保当前代码已提交至Git(避免修改丢失),执行:
npx react-native upgrade - 工具会对比新版本RN模板与本地文件,提示你选择保留自定义代码或替换为模板内容,按需选择即可。
关键依赖适配
- 第三方原生库:像
react-native-gesture-handler、react-native-reanimated这类依赖,需升级至与目标RN版本兼容的版本,可查阅对应库的README确认兼容范围。 - Expo功能模块:如
expo-camera、expo-location等,需保证版本与升级后的Expo SDK一致,expo upgrade未覆盖的模块,手动执行npm install expo-xxx@<对应SDK版本>。
冲突解决实操建议
- 文件冲突处理:升级中出现的配置文件(如
App.js、android/build.gradle、ios/Podfile)冲突,直接用Git diff工具对比差异,保留业务代码的同时,合并RN模板更新的配置项(如编译版本、依赖声明)。 - Android原生配置冲突:
- 重点检查
android/gradle/wrapper/gradle-wrapper.properties的Gradle版本,android/build.gradle的compileSdkVersion、targetSdkVersion,同步新版本RN的配置值,合并自定义的签名、第三方库配置。 - 若编译报错,优先清理缓存:
./gradlew clean后重新构建。
- 重点检查
- iOS原生配置冲突:
- 确认
ios/Podfile中的RN版本与目标版本一致,删除Pods文件夹和Podfile.lock后,执行pod install --repo-update重新安装依赖。 - Xcode报错优先检查权限配置、证书有效性,或在Xcode中执行
Product > Clean Build Folder。
- 确认
- 依赖版本冲突:安装依赖报错时,用
npm ls <依赖名>或yarn why <依赖名>查看依赖树,找到冲突源头:要么升级对应第三方库,要么在package.json中用resolutions(npm/yarn通用)强制指定兼容版本。 - JS API兼容性:新版本RN可能废弃部分旧API(如原
AsyncStorage需替换为@react-native-async-storage/async-storage),全局搜索项目中的废弃API,按官方文档替换为新实现。
升级验证
- 执行
npm install或yarn install安装所有依赖。 - Android端:
npx react-native run-android,查看编译日志解决报错,确认APP正常启动。 - iOS端:
npx react-native run-ios,通过Xcode查看具体报错信息,针对性修复后验证APP运行。
内容的提问来源于stack exchange,提问作者SJaka
相关产品推荐
相关产品推荐

