2012-11-21 20 views
21

Jenkinsを使用してCIシステムをセットアップしていて、xcodebuildが実行中にスキームがないとレポートしたため、行xcodebuildコマンドは、Jenkins内から実行したときとは異なるコマンドラインを実行したとき

-xcodebuild -workspace XXX -scheme NNN。

なぜ私はこのことが起こっているのか理解できませんでした。私は自分のワークスペースで何かが起きているのを解消するために、XCodeを使って新しいプロジェクトテンプレートを作成し、xcodebuildコマンドの任意のワークスペース/プロジェクト

テンプレートプロジェクトは、スクラップと呼ばれていましたし、ターミナルコマンドラインから、私は、たとえば、このコマンドを実行する場合:

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. 

これは最も簡単なジェンキンスジョブです私は新しい仕事を作成し、それをフリースタイルのソフトウェアプロジェクトに設定し、Executシェルのビルドステップを追加し、xcodebuild -listコマンドを追加するだけです。

なぜxcodebuildにはスキームがないと言っているのですか?そして、ジェンキンスの中から走ったとき、それはなぜ違うのですか?

+0

拡張子なしで名前を渡してみましたか? – Eimantas

+0

私はもっと一般的な問題を発見したので私の質問を改訂しました。例えば "xcodebuild -list"を実行するだけで、Jenkinsのようにコマンドラインから異なる結果が得られます。 – Gruntcakes

答えて

32

あなたがする必要があるのは、スキームを共有するように設定することだけです。 スキーム>スキームの管理 「共有」がチェックされていることを確認してください。

そして、これは今、あなたのジェンキンスボックスに表示されますあなたのソース管理とスキームに新しいフォルダ/ファイル.../xcshareddata/xcschemes/???。xcscheme

チェックこのファイルを生成します。

+0

このスキームはどこですか?>スキームを管理しますか? –

+0

XCode 5では、[停止]ボタンの右側にある[ターゲット]をクリックすると、[スキームの管理] – poxion

0

.gitignoreファイルで.xcodeproj/xcuserdata/ .xcuserdatadを無視する必要があります。 xcodebuild -list .xcodeproj/xcuserdata/ .xcuserdatad/xcschemesのスキームを取得します。 jenkinsサーバーにはこのファイルがないので、スキームを取得せずに、ジェンキンスサーバーで* .xcodeprojを開くと、ファイルが作成され、xcodebuild -listは現在のスキームを取得できます。同じ問題があり、上記。

関連する問題