Xcodebuild无法从项目文件中获取环境值?

问题描述:

我使用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

“环境” 设置使用的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

按我的实验,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

有时候,如果你指定的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

我知道这个问题是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