React Native 0.72.3 iOS多Scheme加载.env文件缓存问题求助
React Native 0.72.3 多Scheme对应不同.env文件配置方案
一、修复Xcode Scheme前置脚本
你之前的脚本逻辑有误,react-native-config 依赖的是 ENVFILE 环境变量而非 /tmp/envfile 文件。重新配置两个Scheme的Run阶段前置脚本:
- 打开Xcode,选择对应Scheme(比如
myApp-dev),点击Edit Scheme - 切换到
Run->Pre-actions,添加一个新的Run Script Action - 脚本内容修改为:
注意:每个Scheme对应自己的脚本,不要混写。# 生产Scheme(myApp) export ENVFILE=".env.production" # 开发Scheme(myApp-dev) # export ENVFILE=".env.development"
二、正确配置react-native-config(适配RN 0.72.3)
安装兼容版本:
npm install react-native-config@1.5.1 --save # 或用yarn yarn add react-native-config@1.5.1(1.5.1版本经测试适配RN 0.72.x,若有更新兼容版可替换)
iOS端编译脚本校验:
- 打开Xcode项目,进入
Build Phases - 确保
[CP-User] Config env脚本在Bundle React Native code and images之前执行(拖拽调整顺序)
- 打开Xcode项目,进入
三、彻底清理缓存(解决旧值残留问题)
只清Metro缓存不够,需要同时清理Xcode和项目缓存:
- 关闭所有Metro窗口和Xcode
- 执行项目清理命令:
npx react-native clean - 删除Xcode DerivedData:
- 打开Xcode -> 顶部菜单栏
Xcode->Settings->Locations - 点击
DerivedData右侧的箭头打开文件夹,删除当前项目的缓存目录
- 打开Xcode -> 顶部菜单栏
- 重置Metro缓存并启动:
npx react-native start --reset-cache
四、验证配置
在React Native代码中加入以下代码测试:
import Config from 'react-native-config'; console.log('当前环境:', Config.STAGE);
切换到对应Scheme编译运行,查看控制台输出是否匹配对应.env文件的STAGE值。
额外注意事项
- 切换Scheme后,务必先执行Xcode的
Clean Build Folder(快捷键Cmd+Shift+K)再编译 - 确保.env文件放在项目根目录,文件名和脚本中指定的完全一致(注意大小写)
内容的提问来源于stack exchange,提问作者Sam Leurs
相关产品推荐
相关产品推荐

