xcodebuild - jak zdefiniować makro preprocesora?

Jak zdefiniować makro preprocesora podczas używania xcodebuild?

Muszę zbudować swoją aplikację przy użyciu kilku różnych konfiguracji, i chciałbym to zrobić za pomocą skryptu powłoki, który uruchamia xcodebuild kilka razy z różnych makr preprocesora.

Author: Jaka Jančar, 2010-04-25

2 answers

Cmd + I w projekcie, aby otworzyć okno dialogowe informacji. Następnie w zakładce" Build "znajdź ustawienie" makra preprocesora". Dodaj tam makra.

... Gdzie możesz znaleźć nazwę Ustawienia to GCC_PREPROCESSOR_DEFINITIONS, więc możesz dodać

GCC_PREPROCESSOR_DEFINITIONS="foo=bar"

Do argumentów xcodebuild.

 18
Author: kennytm,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-04-25 15:00:54

Przekazujesz GCC_PREPROCESSOR_DEFINITIONS w linii poleceń xcodebuild.

Pamiętaj, że argument zostanie ponownie oceniony pod kątem dzielenia wyrazów w powłoce i obsługi cudzysłowów, więc musisz być ostrożny, zwłaszcza gdy wartości makra nie są proste 1 s (np. NSString literałów).

Ważne jest również, aby rozwinąć GCC_PREPROCESSOR_DEFINITIONS wewnątrz ustawionej wartości (single-quoted, więc twój skrypt nie rozszerza go, ale powłoka kompilacji rozszerza go), w przeciwnym razie stracisz ustawienia kompilacji dla tego projektu własność.

Poniższy kod umieszcza twoje definicje w ładnej tablicy bash, a następnie rozszerza tablicę w linii poleceń xcodebuild w taki sposób, że rzeczy powłoki są ładnie unikane:

defines=( TESTING=1 'IWISH_HOST=@"http://192.168.0.101:8080"' )

xcodebuild -verbose -scheme "MyAppScheme" \
    GCC_PREPROCESSOR_DEFINITIONS='$GCC_PREPROCESSOR_DEFINITIONS '"$(printf '%q ' "${defines[@]}")"
 32
Author: lhunath,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-11-25 20:26:13