Expo分离后不升级应用,如何恢复React Native的Android和iOS文件夹
重新生成Expo分离后React Native项目的Android/iOS文件夹(不升级版本)
没问题,我来帮你一步步解决这个问题——核心是锁定依赖版本避免自动升级,再通过React Native CLI重新生成原生文件夹。
第一步:备份项目(重中之重)
先给你的项目做个完整备份,重点保存这些文件:
package.json(依赖版本配置)app.json/app.config.js(Expo项目核心配置)- 所有业务代码目录(比如
src/) - 之前自定义过的原生配置片段(如果有修改过Android/iOS文件夹里的内容)
备份能防止意外覆盖重要配置,让你放心操作。
第二步:锁定依赖版本,杜绝自动升级
打开package.json,把关键依赖的版本改成精确值(去掉^或~前缀),比如:
{ "react-native": "0.72.3", "expo": "49.0.0", "expo-splash-screen": "0.20.5" }
这些版本号必须和你删除原生文件夹之前的版本完全一致,这样后续安装依赖时才不会悄悄升级。
第三步:重新安装指定版本的依赖
先清理现有依赖和锁文件,确保安装的是你指定的版本:
- 用npm的话:
rm -rf node_modules package-lock.json npm install - 用yarn的话:
rm -rf node_modules yarn.lock yarn install
第四步:重新生成Android和iOS文件夹
在项目根目录运行以下命令(把<你的RN版本>替换成package.json里react-native的精确版本,比如0.72.3):
npx react-native init --version <你的RN版本> .
注意命令最后的.,表示在当前目录初始化,CLI会生成干净的Android和iOS文件夹,同时保留你现有的业务代码和配置文件(不过可能会覆盖package.json里的部分默认配置,之后记得对比备份文件恢复你的自定义内容)。
第五步:适配Expo分离项目的额外配置
因为是从Expo分离出来的项目,生成原生文件夹后需要补全Expo相关配置:
- 检查
app.json里的expo字段,确保name、slug、ios.bundleIdentifier、android.package这些信息和之前完全一致。 - 如果你之前用了Expo第三方模块(比如expo-camera、expo-location),运行
npx pod-install(针对iOS)确保依赖安装完成,大部分Expo模块已经支持自动链接,无需手动配置。
最后验证
运行项目测试是否正常:
- Android:
npx react-native run-android - iOS:
npx react-native run-ios
如果遇到签名、权限缺失等问题,直接从备份的原生文件夹里把对应的配置代码复制过来即可。
内容的提问来源于stack exchange,提问作者Mizlul
相关产品推荐
相关产品推荐

