排毒不接受传入的环境变量

Detox not taking passed in environment variables

我正在 React Native 应用程序上设置测试环境。最近,我的构建命令已停止包含我传递给它们的环境变量。

EMAIL=testemail@test.com PASSWORD=testpassword xcodebuild....

当应用程序运行时,process.env.EMAIL returns 未定义,如果我记录 process.env 对象,则不会列出 EMAIL、PASSWORD 或命令行中提供的任何其他变量。

更新:这似乎确实是 detox/metro 的问题。这是应该接收传入的环境变量的地方,如概述的那样 in Detox's docs regarding mocking,现在也已损坏。

我对破坏此功能的更改有任何想法吗?

您不能将变量存储在 .env 文件中并使用 process.env 直接在 React Native 中访问它们。

为此,您需要集成 react-native-config 库。

我明白了。我最近修改了我的 bash 脚本来读取变量值,然后让它们在构建调用中传递。事实证明,当我调用脚本本身时需要传入那些。所以我通过将脚本嵌套在另一个读取变量然后适当传递它们的脚本中解决了这个问题。

任何关于为什么这个脚本嵌套有效而不是单个脚本的解释都将不胜感激。