2012-11-21 251 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可以得到當前的方案。我有同樣的問題,並通過方法解決以上。