无法在.env文件中生成shell / bash文件



我试了那么多关键词:

  1. usesource
  2. nothing in front of the path
  3. 使用
# set -a # automatically export all variables
'./../private/some-cred.sh'
# set +a

它们都不允许我将一些私有信用导入到fastlaneDotenv.overload './config/.env.qa'运行的。env文件中

当前文件:

./config/.env.qa

# source './../private/fastlane-cred.sh'
# APPLE_API_KEY_ID=$APPLE_API_KEY_ID_PRIVATE

./private/some-cred.sh

export APPLE_API_KEY_ID_PRIVATE="AAA"

当这个设置被加载到bitrise(在./ios/)通过Dotenv.overload './config/.env.qa'

该值将被视为空值。

任何想法我还应该做什么,为了允许我加载一些变量从一个文件到。env正确,使其被识别?

注意:path是正确的。因为我在。ENV文件中重新定义了一个文件,并且它被正确地加载到bitrise ENV变量中。

关于"dotenv"范式是指各种各样的"趋势"。的实现模仿一个shell环境,而不是真正的shell环境。因为它们是从应用程序内部运行的,并且是用非shell语言编写的——此时使用shell来设置环境变量已经太晚了。"dotenv"库实际上并没有改变进程的环境——它们只是使用运行时的API来存储数据,这样其他使用运行时的环境访问API的代码会看到它,就好像它来自于环境。

fastlane系统使用dotenvgem,它使用一个内部解析器(基于正则表达式)来解析一个看起来像shell文件(只包含变量赋值)但不是真正的shell文件的文件。所有看起来不像简单的shell变量赋值的东西都会被忽略——dotenv文件实际上不是shell脚本,也不像shell脚本那样被对待,所以你不能在里面放shell脚本命令并期望它能工作。

如果你真的想使用shell脚本来设置你的环境,那么使用一个包装器shell脚本来启动你的环境(或者一个Makefile),而不是使用应用程序的内部"dotenv"如前所述,它实际上不是shell脚本。

最新更新