我有一个名为 MyApp 的 React Native,它是在单个代码库中管理的两个应用程序端。该应用程序在构建过程中由 React Native 配置管理,配置设置为特定环境,如 env1 或 env2。为了创建构建,我运行脚本 npm run ios:env1 和 npm run ios:env2 ,它首先设置环境,然后生成应用程序构建,并且根据设置的配置环境设置应用程序路由。所以这部分工作正常。
但是现在,当我将应用程序放入 testflight 时,我需要创建各自的存档版本,但我不知道如何像存档版本之前那样执行此操作,我需要设置 env1 或 env2 等环境。我也从下面阅读了React Native配置的文档,它告诉我为每个环境创建方案n所有也都这样做了,但我仍然收到错误,错误是**“Command PhaseScriptExecution failed with a nonzero exit code”**来自React Native配置。您也可以查看下图以获取更多参考。我的 .env.env1 文件存储在我的项目根目录下的 .env 文件夹中
下面还有我关注的 React Native 配置文档的链接。 react-native-config 文档
错误已得到
注意:“myapp-reactnative”是我的主根目录
*HOST_PATH=/Users/me/Desktop/myapp/myapp-reactnative/ios/Pods/../..
- /Users/me/Desktop/myapp/myapp-reactnative/ios/Pods/../../node_modules/react-native-config/ios/ReactNativeConfig/BuildDotenvConfig.rb /Users/me/Desktop/myapp/myapp- reactnative/ios/Pods/../.. /Users/me/Desktop/myapp/myapp-reactnative/ios/Pods/../../node_modules/react-native-config/ios/ReactNativeConfig /Users/me/Desktop/myapp/myapp-reactnative/node_modules/react-native-config/ios/ReactNativeConfig/ReadDotEnv.rb:29:in
read_dot_env' 来自 /Users/me/Desktop/myapp/myapp-reactnative/ios/Pods/../../node_modules/react-native-config/ios/ReactNativeConfig/BuildDotenvConfig.rb:15:in `' 从 /Users/me/Desktop/myapp/myapp-reactnative/ios/Pods/../.. 读取 env 文件并将 .m 写入 /Users/me/Desktop/myapp/myapp-reactnative/ios/Pods/.. /../node_modules/react-native-config/ios/ReactNativeConfig 将从根文件夹 /Users/me/Desktop/myapp/myapp-reactnative/ios/Pods/../.. 读取 env 文件 命令 PhaseScriptExecution 失败,退出代码非零*read': Is a directory @ io_fread - /Users/me/Desktop/myapp/myapp-reactnative/.env (Errno::EISDIR) from /Users/me/Desktop/myapp/myapp-reactnative/node_modules/react-native-config/ios/ReactNativeConfig/ReadDotEnv.rb:29:in
那么有没有人有任何解决方案来解决这个问题。
react-native-config 脚本试图从项目的根目录读取 .env 文件,但它实际上位于 .env 文件夹中。
需要修改react-native-config模块中的BuildDotenvConfig.rb文件。
打开位于以下位置的 BuildDotenvConfig.rb 文件: node_modules/react-native-config/ios/ReactNativeConfig。
找到 env_file = File.join(host_path, '.env') 的行
修改为 env_file = File.join(host_path, '.env', '.env.env1')
这将告诉脚本在 .env 文件夹中查找 .env.env1 文件。
保存更改并尝试再次构建您的应用程序。
react-native-config 示例不从 .env 文件或 .env.prod #170 读取变量:https://github.com/lugg/react-native-config/issues/170
环境变量不断从.env #652读取:https://github.com/lugg/react-native-config/issues/652