2012-11-21 172 views
21

我使用Jenkins设置CI系统,发现生成失败,因为xcodebuild报告在执行line从命令行运行时,xcodebuild命令的结果与从Jenkins运行时的结果不同

-xcodebuild -workspace XXX -scheme NNN。

我无法弄清楚为什么会发生这种情况,所以为了消除我的工作空间中存在的一些麻烦,我使用XCode创建了一个新的项目模板,并发现我在任何xcodebuild命令和for任何工作区/项目。

模板项目被称为废料,如果从终端命令行我例如运行此命令:

xcodebuild -list 

它输出

Information about project "scrap": 
    Targets: 
     scrap 

    Build Configurations: 
     Debug 
     Release 

    If no build configuration is specified and -scheme is not passed then "Release" is used. 

    Schemes: 
     scrap 

但是,如果我运行xcodebuild联编-list从内詹金斯那么输出反而是:

Building in workspace /Users/Shared/Jenkins/Home/workspace/scrap 
[scrap] $ /bin/sh -xe /var/folders/ph/s6dvlfq9769741g_yzmjlmz000007c/T/hudson3765407964219991487.sh 
+ xcodebuild -list 
Information about project "scrap": 
    Targets: 
     scrap 

    Build Configurations: 
     Debug 
     Release 

    If no build configuration is specified and -scheme is not passed then "Release" is used. 

    This project contains no schemes. 

这是最简单的jenkins jobs-al l我的工作是创建一个新工作,将其设置为一个自由风格的软件项目,然后添加一个Execut shell的构建步骤并添加xcodebuild -list命令,就是这样。

为什么xcodebuild说有没有计划时有?为什么从詹金斯运行时它的行为有所不同?

+0

您是否尝试过传递名称而没有扩展名? – Eimantas

+0

我修改了我的问题,因为我发现它的一个更通用的问题,只是做“xcodebuild -list”例如给出不同的命令行从詹金斯内的结果。 – Gruntcakes

回答

32

发现你需要做的就是设置共享方案​​。 计划>管理计划 确保选中“共享”。

这将然后生成了一个新的文件夹/文件.../xcshareddata/xcschemes/???。xcscheme

检查该文件到您的源代码控制和计划现在应该出现在您的詹金斯箱。

+0

这个计划在哪里>管理计划? –

+0

在XCode 5上,点击目标(在“停止”按钮的右侧),然后您应该看到“管理方案” – poxion

0

您必须忽略您的.gitignore文件中的.xcodeproj/xcuserdata/ .xcuserdatad。 xcodebuild -list从获取方案.xcodeproj/xcuserdata/ .xcuserdatad/xcschemes。 jenkins服务器没有这个文件,所以没有方案,你可以在你的jenkins服务器中打开* .xcodeproj,它会创建文件,然后做xcodebuild -list可以得到当前的方案。我有同样的问题,并通过方法解决以上。