XCode无法识别环境变量

时间:2015-10-20 11:53:01

标签: xcode bash environment-variables xcconfig

我使用以下脚本在OSX Yosemite 10.10.5上运行XCode(7.0.1 7A1001):

export FOO=bar #this should not be necessary, but just in case
launchctl setenv FOO bar #should make it visible to all GUI applications (=XCode)
open -a xcode

然后我打开一个包含两个项目的工作区: App1 App2 。在这两个项目中,我将$(HOME)/$(FOO)放在标题搜索路径字段中。

  • App1 中,按预期解析为/Users/ohads/bar
  • App2 中,它已解析为/Users/ohads/ - 请注意HOME变量是如何解析的,但FOO变量不是。

这里发生了什么?为什么会出现差异?如何让FOO在App2中工作 - 是否有一些我丢失的特殊标志或声明?

顺便说一下,好像这​​并不奇怪,即使我只使用export(而不是launchctl,这是人们应该用于GUI应用程序的情况,App1也可以工作,看作export应该只影响现金申请。)

1 个答案:

答案 0 :(得分:8)

看起来这与new XCode 7 behavior有关。为了使XCode使用环境变量,必须发出以下命令:

$ defaults write com.apple.dt.Xcode UseSanitizedBuildSystemEnvironment -bool NO

发出此命令后,exportlaunchctl都会工作(根据chepner的评论)。我只能猜测它是在 App1 中工作的,因为它是在较旧的XCode版本中创建的。