Roger,
Co szukasz jest sposób ustawić GCC_PREPROCESSOR_MACROS poprzez narzędzia xcodebuild wiersza poleceń. Strona man dla xcodebuild pokazuje format stosowania tych ustawień, jednak sekcja SYNOPTYKA odnosi się tylko do tego, jak „Ustawienia = wartość ...”
xcodebuild [-project projectname] -scheme schemename [-configuration configurationname] [-sdk [sdkfullpath | sdkname]] [buildaction ...] [setting=value ...] [-userdefault=value ...]
xcodebuild -workspace workspacename -scheme schemename [-configuration configurationname] [-sdk [sdkfullpath | sdkname]] [buildaction ...] [setting=value ...] [-userdefault=value ...]
Ostatecznie, masz możliwość ustawienia dowolnego wartości ustawień kompilacji bezpośrednio w wierszu poleceń, używając tego formatu i znając rzeczywistą nazwę ustawienia kompilacji, którą chcesz zmienić. Naturalnie pojawia się pytanie ...
Jak znaleźć nazwy ustawień konstrukcyjnych?
Dobrze, że pytasz! Pasek boczny Xcode 4 jest najłatwiejszym miejscem do znalezienia rzeczywistej nazwy ustawienia kompilacji wiersza polecenia.

Gdy szukasz Nazwa ustawienia kompilacji Quick Pomoc Inspektor Xcode 4'S Utilities bocznym jest to miejsce, aby przejść spojrzenie.
- Dostęp do ekranu ustawień Build swojego projektu.
- Upewnij się, że pasek boczny (który Xcode nazywa "Narzędzia") jest widoczny, klikając przycisk "Narzędzia" obok przycisku Organizator w prawym górnym rogu Xcode.
- W pasku narzędzi Utilities sprawdź, czy jest widoczny "Quick Help Inspector".
Ewentualnie użycie Option + Command + 2, aby pokazać szybką pomoc inspektora bezpośrednio!
Wreszcie jesteś gotowy, aby znaleźć ustawienie produkcji:
- Albo przeprowadzić wyszukiwanie na budowie ustawienie, które chcesz zmienić lub przewinąć listę ustawień kompilacji.
- Kliknij wybrane ustawienie kompilacji i obserwuj aktualizację programu Quick Help Inspector.
- W sekcji "Deklaracja" Inspektora szybkiej pomocy wyświetlana jest nazwa ustawienia kompilacji wiersza polecenia, której chcesz użyć.
W przypadku preprocesor makr zachodzącego początkowo poprosił o, że ustawienie to:
GCC_PREPROCESSOR_DEFINITIONS
Pociągnięcie to wraz z powrotem do pierwotnego pytania, można ustawić ten build ustawienie w wierszu poleceń po prostu przez podanie SETTING_NAME = 'DESIRED_VALUE' wraz z resztą polecenia xcodebuild. W przypadku szybkiego projektu niewiele testu wrzuciłem razem zwane „TestApp” gdzie chciałem Preprocessor Macro „BKM” należy ustawić na wartość 1, dla mnie rozkazem xcodebuild byłoby:
xcodebuild -Project TestApp.xcodeproj - Schemat testapp GCC_PREPROCESSOR_DEFINITIONS = '$ {} dziedziczone BKM = 1'
Dlaczego trzymać $ {} dziedziczone tam?
Jeśli używasz makr Preprocesor, prawdopodobnie masz więcej niż jedno, z którego korzystasz. Niektóre z nich możesz nie chcieć zmieniać z wiersza poleceń, ale nadal zostały zakodowane w ustawieniach kompilacji celu lub projektu. Użycie "$ {inherited}" instruuje xcodebuild, aby używał ustawień budowania zdefiniowanych na wyższym poziomie, zamiast używać tylko tych, które zdefiniowaliśmy w poleceniu xcodebuild. W większości przypadków będziesz chciał użyć $ {dziedziczonego} do pobrania innych skonfigurowanych wartości, które skonfigurowałeś.
Czy muszę zawijać wartość w apostrofach?
Jeśli chcesz ustawić więcej niż jedną wartość, wtedy tak, będziesz musiał zawijać wartość w apostrofach, w przeciwnym razie, jeśli ustawisz dwa lub więcej makr Preprocesorowych z wiersza poleceń, makro 2 + zostanie zinterpretowane jako ustawienie kompilacji zamiast Preprocessor Macro ... nie do końca właściwe zachowanie. Apostrofy działają jako sposób zbierania wielu wartości dla wspólnego ustawienia. W przypadku mojego przykładowego polecenia xcodebuild, chciałem, aby xcodebuild korzystał z odziedziczonego zestawu makr Preprocesor wraz z moim określonym ustawieniem BKM, więc zawinąłem wartość w apostrofach, aby powiedzieć xcodebuildowi, że traktują je zarówno jako Makra Preprocesora.
Czy to będzie działać również w obszarach roboczych?
Absolutnie! Po prostu zmodyfikuj komendę, aby użyć parametru -workspace zamiast parametru -project, a będziesz działać!
Uwaga: używaj pojedynczych apostrofów, a nie podwójnych – Quanturium