我正在使用托管在Mac上的TeamCity 8.0.5,我有第二台Mac设置作为我的构建代理,同时安装了Xcode 3.2.6和Xcode 4.6.2。我正在使用的项目需要特定的IDE版本,不用感谢Adobe SDK,我似乎无法设置TeamCity来指定用于构建的Xcode版本。
如果我使用xcode-select
命令,我可以在开始构建之前手动将构建设置为Xcode的任一版本,并且两者都可以顺利完成。
我尝试使用以下命令添加一个带有'Command Line'Runner类型的新构建步骤:
xcode-select -switch /Developer/Xcode3/
但是xcode-select命令需要作为sudoer运行。当我在该行上添加sudo
前缀时,出现以下错误:
Step 1/3: Switch xcodeBuild to Xcode3 (Command Line)
[Step 1/3] Starting: /Applications/TeamCity/buildAgent/temp/agentTmp/custom_script12345
[Step 1/3] in directory: /Applications/TeamCity/buildAgent/work/12345
[Step 1/3] Sorry, try again.
[Step 1/3] Sorry, try again.
[Step 1/3] Sorry, try again.
[Step 1/3] sudo: 3 incorrect password attempts
[Step 1/3] Process exited with code 1
我尝试通过将命令写入bash脚本,将脚本放在本地文件路径并打开执行权限来尝试修复。这让我更进一步:
Step 1/3: Switch xcodeBuild to Xcode3 (Command Line)
[Step 1/3] Starting: /xcode.sh
[Step 1/3] in directory: /Applications/TeamCity/buildAgent/work/12345
[Step 1/3] sudo: no tty present and no askpass program specified
我能够在StackOverflow上找到关于如何修复tty问题的this post,但我只能再次调用脚本,然后再次提示输入脚本中的密码。我不确定是在本地登录计算机还是通过SSH保持脚本正常工作,或者如果修改/ etc / sudoers文件在Mac上与在Linux发行版上具有相同的效果。
我想我正在寻找一种更好的方法来从命令行运行sudo命令或从TeamCity中选择另一个版本的Xcode。
感谢您阅读这篇长篇文章!