xcode - 在 Xcode 构建阶段运行脚本中设置全局环境变量

标签 xcode jenkins environment-variables jenkins-plugins run-script

我正在使用 Jenkins 进行持续集成构建。我有很多工作都有很多相同的配置代码。我正在将这一切都提取到一个我想在构建前和构建后运行的通用脚本文件中。

我一直无法弄清楚如何在该脚本中设置一些环境变量,以便 Xcode 构建命令和 Jenkins 构建都可以看到它们。

有谁知道这是否可能?

最佳答案

不可能完全按照你的要求去做。一个进程不能改变另一个进程的环境变量。前、后和实际的构建步骤在不同的进程中运行。

但是您可以创建一个脚本来设置公共(public)环境变量并在所有构建之间共享该脚本。

首先会调用你的 shell 来执行脚本中的命令,然后调用 xcodebuild:

# Note the dot in the beginning of the next line. It is not a typo.
. set_environment.sh
xcodebuild myawesomeapp.xcodeproj

脚本可能如下所示:
export VARIABLE1=value1
export VARIABLE2=value2

您的作业将如何共享脚本取决于您的环境和用例。你可以
  • 将脚本放在 Jenkins 主机或
  • 上的某个知名位置
  • 如果您的所有作业共享同一个存储库或
  • ,则将脚本放置在版本控制的源代码树中
  • 将脚本放在它自己的存储库中,并进行 Jenkins 构建,将脚本存档为构建工件。然后,所有其他作业将使用 Copy Artifact 插件从脚本作业的工件中获取脚本的副本。
  • 关于xcode - 在 Xcode 构建阶段运行脚本中设置全局环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10046394/

    相关文章:

    ios - UISwitch 不改变状态

    ios - 如何修复 Apple 崩溃报告与我自己的崩溃报告之间的差异?

    jenkins - 如何控制 Jenkins 开始构建的工作空间?

    java - Jetty应用服务器热部署

    java - 从 Eclipse 与系统设置环境变量

    ios - 为什么成员(member)中心 "App Store and Ad Hoc"证书(生产)不可用?

    objective-c - 工作区缺少工作副本中的链接文件

    git - 如何在不指定后者的情况下将本地分支重置为远程跟踪分支?

    powershell - 通过Powershell为另一个用户设置环境变量

    javascript - react JS : Use environment variables to specify two API urls based on production vs development