You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将React Native项目降级至适配Expo SDK 45的版本?

React Native 0.69.0降级至0.68.2适配Expo SDK 45可行方案

操作前先把当前代码提交到git做全量备份,避免操作失误丢失改动。

步骤1:对齐核心依赖版本

打开项目根目录的package.json,修改以下依赖字段到对应版本:

  • react-native: 固定为0.68.2
  • react: 固定为17.0.2(RN0.68.2仅兼容React 17,0.69默认搭载的React 18会直接导致运行报错)
  • expo: 固定为45.0.0,所有expo-*前缀的官方依赖,都要对齐到Expo SDK 45对应的兼容版本,避免SDK内部接口不匹配。

步骤2:全量清理旧依赖与构建缓存

版本升降级的玄学报错90%来自旧缓存残留,依次执行以下命令彻底清理:

# 删除根目录依赖目录与锁文件
rm -rf node_modules
rm -f yarn.lock package-lock.json pnpm-lock.yaml

# 清理包管理器缓存
npm cache clean --force
# 若使用yarn作为包管理器,额外执行
yarn cache clean

# 清理iOS端原生依赖缓存
cd ios
rm -rf Pods Podfile.lock
pod deintegrate
cd ..

# 清理安卓端构建缓存
cd android
./gradlew clean
cd ..

步骤3:重新安装全量依赖

# 根目录安装JS依赖,根据自己用的包管理器二选一
npm install
# 或
yarn install

# 重新安装iOS端pod依赖
cd ios
pod install --repo-update
cd ..

步骤4:修复版本差异带来的兼容问题

RN 0.69到0.68存在几个明确的破坏性变更,需要对应调整代码:

  • 0.69默认开启React 18并发渲染支持,如果代码中用到了React 18专属API(包括useId、startTransition、React 18模式的根节点注册逻辑),要全部替换为React 17兼容写法,同时检查入口文件index.js,改回RN0.68标准的AppRegistry.registerComponent注册逻辑,不要保留0.69新增的React 18根节点渲染代码。
  • 检查安卓端android/build.gradle、iOS端Podfile里的原生构建配置,对齐RN0.68.2官方模板的默认配置,删除0.69版本新增的默认新架构(TurboModule/Fabric)相关的开启配置。
  • 若有第三方原生依赖报版本不兼容错误,将对应依赖降级到最后一个支持RN 0.68的发布版本即可,主流社区库基本都保留了对0.68版本的兼容支持。

备选方案(原生配置改动多的项目推荐)

如果项目原生端配置改动较多,直接改版本清缓存容易出现难以排查的原生配置报错,可以直接初始化一个纯净的RN0.68.2+Expo SDK45的模板项目,把自身业务代码(src目录、静态资源、自行接入的第三方原生依赖逻辑)迁移到新项目中,整体效率比在旧项目上排错更高。

内容的提问来源于stack exchange,提问作者Audrey K

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 16:01:07