React Native Config在iOS Xcode打包Archive时报错求解决
解决React Native Config打包Archive时的Errno::EISDIR错误
问题根源
你的.env.env1文件存放在根目录的.env文件夹中,但Xcode Scheme的Build Pre-actions脚本里指定的ENVFILE路径错误指向了.env目录,而非具体的.env.env1文件,导致react-native-config的ReadDotEnv.rb脚本尝试读取目录引发Errno::EISDIR错误。
解决方案
修正Build Pre-actions的ENVFILE路径
打开Xcode,进入目标Scheme的Edit Scheme > Build > Pre-actions,找到你添加的环境配置脚本,确保ENVFILE指向正确的文件路径:# 直接在命令前指定ENVFILE ENVFILE=".env/.env.env1" react-native-config # 或者先export环境变量 export ENVFILE=".env/.env.env1"路径是相对于项目根目录的,务必确认层级和文件名拼写完全匹配。
验证Build Phases中的配置脚本
检查Xcode项目Build Phases里的[CP-User] Config env vars脚本,确认它是通过ENVFILE环境变量读取配置文件,而非硬编码固定路径。该脚本默认逻辑是读取ENVFILE变量,只要Pre-actions里的设置正确,就会自动指向目标文件。清理缓存后重新构建
- 按下
Cmd + Shift + K清理Xcode项目构建缓存 - 删除DerivedData目录:通过
File > Project Settings > Derived Data打开目录并删除全部内容 - 重启Xcode,重新尝试Archive操作
- 按下
确认.env文件的权限与命名
- 确保
.env.env1文件对当前用户有读取权限 - 检查文件名是否准确,避免出现拼写错误(比如误写为
.env/env1)
- 确保
额外提示
日常运行npm run ios:env1正常是因为npm脚本里已经正确设置了ENVFILE,但Xcode Archive不会继承npm脚本的环境变量,必须在Scheme的Pre-actions中显式配置。
内容的提问来源于stack exchange,提问作者Shubham More
相关产品推荐
相关产品推荐

