我不熟悉 Xcode Server,但通常 Unix/CI 系统在导出环境变量时只将其导出到当前会话。
如果要永久设置环境变量,则必须将其设置在初始化文件中,例如 ~/.bash_profile 或 ~/.bashrc 以便在 shell 会话开始时始终设置/加载(例如:当您使用终端登录时 -确切的文件取决于您启动的外壳类型)。
持久导出这些也没有多大意义,因为在这种情况下,如果您运行不同的集成,它们只会覆盖彼此导出的环境变量(它们将设置相同的环境变量)。
这就是为什么通过环境变量进行通信的系统通常不会将变量写入持久初始化文件而只是导出变量。使用export,变量可以从导出它的进程访问,而子进程则可以从进程启动。
例如,在 bash 脚本中,如果您导出一个变量,您可以在导出后从 bash 脚本访问它,也可以从您从 bash 脚本启动的任何命令/程序访问它,但是当 bash 脚本完成时,环境将不再可访问。
编辑
只是为了澄清一点:您应该能够从 Xcode Server 运行的后触发脚本访问这些环境变量,但您很可能无法从终端/命令行访问这些环境变量。
另外我在哪里可以找到这个 CI 系统创建的变量列表?
您可以使用env命令打印所有可用的环境变量。在 bash 脚本中,只需在新行中键入env ,如下所示:
#!/bin/bash
env
这将打印所有可用的环境变量(不仅仅是 Xcode Server 定义的那些!) - 如果您愿意,您可以简单地将其通过管道传输到文件进行检查,如下所示:
#!/bin/bash
env > $HOME/envinspect.txt
运行此脚本后,您只需打开用户主文件夹中的 envinspect.txt 文件即可。