首页 > 解决方案 > 将环境变量从 fastlane 传递到 Xcode 构建阶段脚本

问题描述

是否可以(如果可以,如何)将环境变量从运行 fastlane 的脚本传递到 Xcode 运行脚本阶段?

我的最终目标是在运行脚本阶段读取当前的 git 分支名称。我们的 CI 由 Team Foundation Server 运行,它执行git checkout显式提交,而不是分支,因此当前分支始终显示为HEAD.

TFS -> fastlane -> gym -> xcodebuild -> script that needs the branch

只能通过 TFS 设置的环境变量来获取触发构建的分支。我的计划是将这个值归结为 Xcode 脚本来做我需要的事情。

如果我理解正确的话,我宁愿不使用它,因为它将所有环境变量传递给构建过程。

defaults write com.apple.dt.Xcode UseSanitizedBuildSystemEnvironment -bool NO

标签: xcodegittfsxcodebuildfastlane

解决方案


要将环境变量传递给 BuildPhases,请xcargs使用Fastfile

build_app(workspace: ..., scheme: ..., xcargs: "SOMEVAR1='one' SOMEVAR2='two'")

此命令生成xcodebuild ... SOMEVAR1='one' SOMEVAR2='two',然后这些变量将在 Build Phases 中可用。


推荐阅读