我们正在使用 Jenkins 在 Mac Mini 服务器上运行我们的 xcodebuilds。在过去的几周里,我们开始开发 iOS 7 应用程序,并在 Mac Mini 上安装了 Xcode 5 DP 版本。
在安装新的 Xcode 版本并配置新 Xcode 的 xcodebuild 时,xcode-select 这个新版本也用于构建我们的旧 iOS 6 应用程序 - 这会破坏它们的 UI。
有没有办法告诉 Jenkins 它应该使用哪个 xcodebuild 来构建项目?
查看 Andy Molloy 在http://andymolloy.net/specifying-xcode-version-for-jenkins-projects上发布的解决方案。
您必须为 Jenkins 安装 EnvInject 插件并将 DEVELOPER_DIR=/Applications/Xcode5-DP6.app/Contents/Developer 环境变量添加到您的构建作业中。
看起来不可能为每个 jenkins 作业指定 xcode 版本。在命令行上切换 xcode 版本也需要 root 权限。
您可以通过确保您的 IOS 6 应用程序在使用新的 xcode 构建时正常工作来解决您的问题。尝试选择正确的基础 SDK 和部署目标http://www.clarkcox.com/blog/2009/06/23/sdks-and-deployment-targets/
如果这不起作用,您可以尝试强制切换 xcode 版本以在构建时使用,预先使用 xcode 插件。您将不得不摆弄 sudo 权限。鉴于这是一个系统设置,您可能需要防止多个构建同时发生。
不过,我会尽力让多个构建与单个 xcode 版本一起工作。
在运行时选择 xcode 版本
DEVELOPER_DIR=/Applications/Xcode6.0.1.app/Contents/Developer
在将环境变量注入到构建过程中