从XCode调用make时的路径变量

从XCode调用make时的路径变量,xcode,makefile,environment-variables,Xcode,Makefile,Environment Variables,对于iPad应用程序,我需要将一些CoffeeScript文件转换为JavaScript文件,然后再将它们与应用程序绑定 我尝试使用以下代码将Makefile添加到我的XCode项目中: MANUAL_ROOT=IOS12BSH/manual SCRIPTS_ROOT=$(MANUAL_ROOT)/scripts COFFEE_SOURCES=$(SCRIPTS_ROOT)/*.coffee $(SCRIPTS_ROOT)/guides/*.coffee JAVASCRIPT_TARGETS=

对于iPad应用程序,我需要将一些CoffeeScript文件转换为JavaScript文件,然后再将它们与应用程序绑定

我尝试使用以下代码将Makefile添加到我的XCode项目中:

MANUAL_ROOT=IOS12BSH/manual
SCRIPTS_ROOT=$(MANUAL_ROOT)/scripts

COFFEE_SOURCES=$(SCRIPTS_ROOT)/*.coffee $(SCRIPTS_ROOT)/guides/*.coffee
JAVASCRIPT_TARGETS=$(COFFEE_SOURCES:.coffee=.js)

all: build

build: coffeescript

clean: clean_coffeescript

coffeescript: $(JAVASCRIPT_TARGETS)

clean_coffeescript:
    rm -f $(JAVASCRIPT_TARGETS)

$(JAVASCRIPT_TARGETS): $(COFFEE_SOURCES)
    coffee -c $(COFFEE_SOURCES)
从shell运行这个Makefile不会出现问题。然而,在我将Makefile添加到XCode中作为目标之后,我遇到了问题

生成文件生成了以下错误:

coffee -c IOS12BSH/manual/scripts/*.coffee IOS12BSH/manual/scripts/guides/*.coffee
/bin/sh: coffee: command not found
make: *** [IOS12BSH/manual/scripts/*.js] Error 127
Command /Applications/Xcode.app/Contents/Developer/usr/bin/make failed with exit code 2
这很奇怪,因为
coffee
命令安装在我的机器上(它安装在
/opt/local/bin/coffee
下,
/opt/local/bin
被添加到
~/.profile
中的
$PATH

因此,我在我的Makefile中添加了一个
echo$(PATH)
,当由XCode执行Makefile时,
$PATH
似乎是不同的。XCode似乎无法从
~/.配置文件中读取设置,因此
/opt/local/bin
不在
$PATH


出现这种情况的原因是什么?我如何解决这个问题,以便找到
coffee
命令?

嗯,似乎通过Dock或Spotlight启动的程序无法执行
。profile
因此
$PATH
设置不正确

因此,一种方法是在
~/.MacOSX/environments.plist
中设置
$PATH
。很显然,这是可行的,但需要重新启动才能工作


另一种方法是始终从命令行用
打开projectfile

启动XCode。此答案详细解释了问题:

最适合我的方法就是从命令行启动Xcode。 我编写了一个简单的bash脚本,如下所示:

source ~/.bash_profile  # This is the trick that gets us our environment variables.
open -a "Xcode"
然后我从Applescript应用程序调用它,只是为了给它一个捆绑包,我可以把它放到码头上:

do shell script "~/xcode_launcher"

在bash脚本中,源配置文件是必要的,因为从Applescript运行脚本从来没有源配置文件,所以您仍然没有默认的环境变量。

ant
命令相同。它在终端上工作,而不是Xcode必须这样做。唯一能让它工作的方法是:
sudo open project.xcodeproj
在终端中。

为什么不修改makefile中的“
$PATH
”来添加“
/opt/local/bin
”?如何在Xcode中运行makefile?它是否处于“运行脚本”构建阶段?我无法在Makefile中更改它,因为Makefile位于共享存储库中。其他开发人员可能已经在其他地方安装了他们的
coffee
命令。我没有
Makefile
的经验,但是你不能
source~/.profile
?那应该是
~/.MacOSX/environment.plist
而不是复数
environments.plist
)这里有没有什么聪明的方法可以将这个路径设置为源于~/.profile?嗯,我刚刚检查了一下,我实际上已经在plist文件中有了
/opt/local/bin
。。(操作系统10.8;代码4.6.3)。但它似乎仍然无法找到文件。在像OP建议的那样打印出Makefile中的路径后,我发现该路径实际上与
~/.MacOSX/environment.plist中的路径非常不同,并且它不包括
/opt/local/bin