Xcode4: пустые переменные окружения в пользовательской сборке pre-action / post-action - PullRequest
3 голосов
/ 09 апреля 2011

Мне нужно запустить собственный скрипт сборки в xcode 4. Скрипт добавляется как предварительное действие и выполняется правильно.Моя проблема в том, что нет переменных среды , которые могли бы помочь мне получить доступ к файлам моего проекта.,К сожалению, переменные не установлены.Вся среда выглядит так:

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}, чтобы найтивернуться в каталог моего проекта ...

Обновление : похоже, это ошибка в xcode 4.0.1 .Если вы вводите скрипт непосредственно в окно XCode, по крайней мере, доступна переменная ${WORKSPACE_PATH}.

1 Ответ

1 голос
/ 07 июля 2013

Я обнаружил, что добавление сценария на этапе сборки цели, а не в качестве предварительного действия, было лучшим решением в моем случае:

  1. Выберите проект в навигаторе проекта.
  2. Выберите цель.
  3. Перейдите на вкладку Фазы сборки.
  4. Добавьте новую фазу сборки (скрипт).
  5. Перетащите ее выше фазы источников компиляции.
  6. Добавьте туда любой скрипт, который вам нужен.Вы можете получить доступ к переменным окружения, таким как ${PROJECT_DIR}.

. Вы даже можете получить все переменные окружения в Навигаторе журналов.

Кроме того, рабочий каталог для любогоСценарии, которые вы вызываете, будут автоматически установлены в каталог проекта.

...