2011-12-29 50 views
3

我使用Xcode 3.2.6,MacOSX。Xcodebuild無法從項目文件中獲取環境值?

我有一個全局可見的環境設置:

ICU_SRC=~/Documents/icu/source 

真的是環境設置,它的設置在登錄時。當我打開終端時,它就在那裏。

在我的項目,Header Search Paths下,我已經添加了這個:

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

這些正確的擴大,當我編譯在IDE中。當我看到構建結果時,我看到:

-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聯編 - 項目my_project.xcodeproj -target 「MY-」 - 配置發佈-sdk macosx10.6 build

我在做什麼錯?

編輯補充:

蘋果解釋Setting environment variables for user processes

回答

0

「環境」 設置使用的Xcode不是真的環境變量;他們只知道Xcode。如果你想他們是真正的環境變量,在命令行中看到,你必須使用以下shell命令:

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

謝謝,但它確實是一個環境設置,我將它設置在'〜/ .MacOSX/environment.plist'中,並且它在終端中可見。但xcodebuild似乎認爲這是別的東西。 – egrunin 2011-12-29 21:26:55

+0

哦,對不起。我不知道這件事。 – 2011-12-29 21:49:24

0

按我的實驗,xcodebuild聯編並沒有真正從殼牌回暖的環境變量。爲了使榮譽的Xcode環境變量,我們必須明確地傳遞他們:

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中引用它。順便說一句,我使用了不同的名稱,所以我們可以區分兩個變量,但也可以使用相同的變量名稱。

在我的例子中,〜/ .MacOSX/environment.plist確實等同於輸出行。只適用於殼牌。

希望有所幫助。

+0

我會試試這個,謝謝! – egrunin 2012-06-01 06:45:12

+1

似乎xcodebuild *從它的環境(例如你運行它的shell)中至少選取了CC,儘管......(在我的情況下,它不是*我想要的;)嘆氣,爲什麼不能將這些東西記錄清楚。 – tml 2012-11-27 19:20:11

1

有時候,如果你指定的env瓦爾以前xcodebuild命令它工作得更好,如

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

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

這與的CocoaPods工作時效果特別好PRODUCT_NAME

+1

這似乎令人難以置信的瘋狂,但它實際上工作! – 2017-04-21 14:33:02

1

我知道這個問題是2歲,但它仍然是相關的。我花了一天的時間來追蹤xcodebuild查看CC環境變量(如果已設置)並且可能會做錯誤的事情。我正在使用xcodebuild版本6.1.1(構建版本6A2008a)。

我得到,如果CC被設置的錯誤是:

PBXTargetBuildContext.mm:1690

詳情:COMMANDPATH應該是一個字符串,位是零

提示:無

我希望這可以幫助別人。

+0

不知道這是否正確(我不再在該項目上),但感謝您的貢獻。 – egrunin 2015-02-11 18:21:51

+0

非常感謝! – 2015-07-24 18:09:15