我需要在xcode 4中运行自定义构建脚本。脚本作为预处理添加并正确执行。我的问题是,没有environment variables可用来帮助我访问我的项目文件。
即。我对${PROJECT_DIR}
,${BUILT_PRODUCTS_DIR}
和${INFOPLIST_PATH}
感兴趣。不幸的是,没有设置变量。整个环境看起来像这样:
Apple_PubSub_Socket_Render=/tmp/launch-pc2V6P/Render
BASH=/bin/sh
BASH_ARGC=()
BASH_ARGV=()
BASH_LINENO=([0]="0")
BASH_SOURCE=([0]="/Users/melle/Projects/rc-control/RC/Scripts/preBuild.sh")
BASH_VERSINFO=([0]="3" [1]="2" [2]="48" [3]="1" [4]="release" [5]="x86_64-apple-darwin10.0")
BASH_VERSION='3.2.48(1)-release'
COMMAND_MODE=unix2003
DIRSTACK=()
DISPLAY=/tmp/launch-VH6onm/org.x:0
EUID=502
GROUPS=()
HOME=/Users/melle
HOSTNAME=zack.fritz.box
HOSTTYPE=x86_64
IFS=' '
LOGNAME=melle
MACHTYPE=x86_64-apple-darwin10.0
OPTERR=1
OPTIND=1
OSTYPE=darwin10.0
PATH=/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin
PIPESTATUS=([0]="0")
POSIXLY_CORRECT=y
PPID=43073
PS4='+ '
PWD=/private/var/folders/h2/h2tdJ2dPF943jRjJXqjNX++++TM/-Tmp-
SCHEME_ACTION_NAME='Run Script'
SHELL=/bin/bash
SHELLOPTS=braceexpand:hashall:interactive-comments:posix
SHLVL=3
SSH_AUTH_SOCK=/tmp/launch-LXX6Lp/Listeners
TERM=dumb
TMPDIR=/var/folders/h2/h2tdJ2dPF943jRjJXqjNX++++TM/-Tmp-/
UID=502
USER=melle
_=PWD
__CF_USER_TEXT_ENCODING=0x1F6:0:0
这是xcode4中的错误还是我,完全错了?
我目前的解决方法是滥用${BASH_SOURCE}
找回返回项目目录的路径......
更新:看起来像this is a bug in xcode 4.0.1。如果您将脚本直接输入Xcode窗口,则至少可以使用变量${WORKSPACE_PATH}
。
答案 0 :(得分:1)
我发现在我的情况下,将脚本添加到目标的构建阶段而不是作为预处理是一个更好的解决方案:
${PROJECT_DIR}
。您甚至可以让它在日志导航器中输出所有环境变量。
此外,您调用的任何脚本的工作目录将自动设置为项目的目录。