将环境变量从 fastlane 传递到 Xcode 构建阶段脚本

Jay*_*itt 5 git tfs xcode xcodebuild fastlane

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

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

TFS -> fastlane -> gym -> xcodebuild -> script that needs the branch
Run Code Online (Sandbox Code Playgroud)

可以仅通过 TFS 设置的环境变量获取触发构建的分支。我的计划是将该值归入 Xcode 脚本以完成我需要的操作。

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

defaults write com.apple.dt.Xcode UseSanitizedBuildSystemEnvironment -bool NO
Run Code Online (Sandbox Code Playgroud)

com*_*m1x 12

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

build_app(workspace: ..., scheme: ..., xcargs: "SOMEVAR1='one' SOMEVAR2='two'")
Run Code Online (Sandbox Code Playgroud)

该命令生成xcodebuild ... SOMEVAR1='one' SOMEVAR2='two',然后这些变量将在构建阶段可用。

  • 语法被引用,所以像这样:“BUILD_NUMBER='43' VERSION_NUMBER='12'” (3认同)