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
我在做什么错?
编辑补充:
“环境” 设置使用的Xcode不是真的环境变量;他们只知道Xcode。如果你想他们是真正的环境变量,在命令行中看到,你必须使用以下shell命令:
[email protected] ~ $ export ICU_SRC="~/Documents/icu/source"
按我的实验,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确实等同于输出行。只适用于壳牌。
希望有所帮助。
有时候,如果你指定的env瓦尔以前的xcodebuild
命令它工作得更好,如
# NOT this
xcodebuild ... options ... SOMEVAR=somevalue
# But this instead works better
SOMEVAR=somevalue xcodebuild ... options ...
这与的CocoaPods工作时效果特别好PRODUCT_NAME
。
这似乎令人难以置信的疯狂,但它实际上工作! – 2017-04-21 14:33:02
我知道这个问题是2岁,但它仍然是相关的。我花了一天的时间来追踪xcodebuild查看CC环境变量(如果已设置)并且可能会做错误的事情。我正在使用xcodebuild版本6.1.1(构建版本6A2008a)。
我得到,如果CC被设置的错误是:
PBXTargetBuildContext.mm:1690
详情:COMMANDPATH应该是一个字符串,位是零
提示:无
我希望这可以帮助别人。
不知道这是否正确(我不再在该项目上),但感谢您的贡献。 – egrunin 2015-02-11 18:21:51
非常感谢! – 2015-07-24 18:09:15
谢谢,但它确实是一个环境设置,我将它设置在'〜/ .MacOSX/environment.plist'中,并且它在终端中可见。但xcodebuild似乎认为这是别的东西。 – egrunin 2011-12-29 21:26:55
哦,对不起。我不知道这件事。 – 2011-12-29 21:49:24