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.
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.
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[@]}")"
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