4

我使用以下脚本在 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

然后我打开一个包含两个项目的工作区:App1App2。在这两个项目中,我都$(HOME)/$(FOO)输入了Header Search Paths字段。

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

这里发生了什么?为什么会出现差异?我怎样才能FOO在 App2 中工作 - 是否有一些我遗漏的特殊标志或声明?

顺便说一句,好像这还不够奇怪,即使我只使用 App1 也可以工作export(与launchctlGUI 应用程序应该使用的相反,因为export应该只影响现金应用程序)。

4

1 回答 1

12

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

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

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

于 2015-10-20T13:08:35.617 回答