2011-12-29 15 views
3

私はXcode 3.2.6、MacOSXを使用しています。このは本当に環境設定でXcodebuildがプロジェクトファイルから環境値を取得できませんでしたか?

ICU_SRC=~/Documents/icu/source 

が、それはログイン時に設定されています:

は私が世界的に目に見える環境設定を持っています。ターミナルを開くと、それがあります。私のプロジェクトで

は、Header Search Pathsの下で私はこれを追加しました:私は、IDE内でコンパイルするときに

$(ICU_SRC)/i18n 
$(ICU_SRC)/common 

はこれらを正しく展開します。ビルド結果を見ると、次のようになります。

-I/Users/eric.grunin/Documents/icu/source/i18n 
-I/Users/eric.grunin/Documents/icu/source/common 

ただし、コマンドラインからビルドすると失敗します。私が見るものは、このされる:ここで私はコンパイルに使用しているコマンドの

-I/i18n 
-I/common 

は/ usr/binに/ envを-i xcodebuild -project my_project.xcodeproj -target "my_program" - 構成リリース-sdk macosx10.6ビルド

私は間違っていますか?

編集を追加する:

AppleはSetting environment variables for user processes

答えて

0

"環境" の設定は、Xcodeのを使用して設定説明は本当に環境変数ではありません。彼らはXcodeにしか知られていません。あなたがそれらをコマンドラインから見える本当に環境変数になりたい場合は、次のシェルコマンドを使用する必要があります。私の実験を1として

[email protected] ~ $ export ICU_SRC="~/Documents/icu/source" 
+0

本当に環境設定ですが、 '〜/ .MacOSX/environment.plist'に設定しています。これは端末に表示されます。しかしxcodebuildはそれが別のものだと思っているようです。 – egrunin

+0

ああ、申し訳ありません。私はこれについて知らなかった。 –

0

を、xcodebuildは本当にシェルから環境変数をピックアップしていません。

export ICU_SRC_ENV=~/Documents/icu/source 
    /usr/bin/env -i xcodebuild -project my_project.xcodeproj \ 
          -target "my_program" \ 
          -configuration Release \ 
          -sdk macosx10.6 \ 
          build \ 
          ICU_SRC=$ICU_SRC_ENV 

上記のコマンドは、システム環境変数をxcodebuild環境変数に渡します。 $(ICU_SRC)表記でxcodeprojで参照できます。私は2つの変数を区別できるように異なる名前を使用しましたが、同じ変数名を使用することもできます。

私の例では〜/ .MacOSX/environment.plistは実際にエクスポート行と同等です。シェル専用です。

希望に役立ちます。 cocoapodsで作業するとき

# NOT this 
xcodebuild ... options ... SOMEVAR=somevalue 

# But this instead works better 
SOMEVAR=somevalue xcodebuild ... options ... 

にこれはPRODUCT_NAMEのために特に適していますよう

+0

私はこれを試してみます、ありがとう! – egrunin

+1

xcodebuild *は、少なくともその環境(例えばあなたが実行するシェル)から少なくともCCをピックアップするようですが(私の場合は*私が望むものではありません)このことは明確に文書化することはできません。 – tml

1

あなたはENVを指定した場合、時にはそれが良い作品は、xcodebuildコマンドをvarsの。

+1

これは信じられないほど狂っているようですが、実際には機能します! –

1

私はこの質問が2歳であることを知っていますが、それはまだ関連しています。私はちょうどxcodebuildがCC環境変数(設定されている場合)を見て、おそらく間違ったことをするという事実を追跡していました。私はxcodebuildバージョン6.1.1(ビルドバージョン6A2008a)を使用しています。

CCが設定されている場合、私は取得エラーです:

PBXTargetBuildContext.mm:1690

詳細:commandPathが文字列である必要があり、それは

ヒントnilであるビット:なし

これが他の人に役立つことを願っています。

+0

これが正しいかどうかは分かりませんが(私はそのプロジェクトにはもういなくなりました)、貢献してくれてありがとうございます。 – egrunin

+0

ありがとうございました! –