在 IOS Xcode 中创建 Archive Build 时出现 React Native Config 错误

问题描述 投票:0回答:1

我有一个名为 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 文件夹中

我还在构建中的预操作中的方案中添加了一个脚本 please refer below image for the script is wrote in the tareget in schemes

下面还有我关注的 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': 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 
    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 失败,退出代码非零*

那么有没有人有任何解决方案来解决这个问题。

ios reactjs iphone react-native react-native-config
1个回答
0
投票
  • 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

© www.soinside.com 2019 - 2024. All rights reserved.