Próbuję uruchomić xcodebuild z różnymi makrami przetwarzania wstępnego.Linia poleceń xcodebuild ignorująca GCC_PREPROCESSOR_DEFINITIONS
Próbowałem:
xcodebuild -scheme myscheme \
-configuration "Archive" \
-sdk "iphoneos5.1"
archive \
CONFIGURATION_BUILD_DIR=../build \
GCC_PREPROCESSOR_DEFINITIONS=ADHOC
ale mam błąd kompilacji ze względu na fakt, preprocesor nie był używany:
nie mogłem zobaczyć go z -D flaga kompilacji komenda
Ale to jest wyświetlane na początku skryptu
Build settings from command line:
CONFIGURATION_BUILD_DIR = ../build
GCC_PREPROCESSOR_DEFINITIONS = ADHOC
SDKROOT = iphoneos5.1
Kod u podstaw błędu kompilacji jest:
#ifdef ADHOC
NSUInteger toto = 0;
#endif
ale pojawia się błąd use of undeclared identifier
dla toto
ps: jeśli zrobię określić preprocesor makr w Xcode, a następnie wartości te są wykorzystywane, moje są zastąpione i archiwizowanie jest zakończone. Ale chcę utworzyć kilka kompilacji opartych na różnych definicjach preprocesora (co brzmi lepiej niż tworzenie nowych konfiguracji lub schematów budowania)
Wydaje się, że działa dla mnie. Czy możesz podać przykładowy projekt, który pokazuje problem? – Jim
Nawiasem mówiąc, nie zgadzam się z tym, że definicje preprocesorów są tutaj najlepszym rozwiązaniem. Są z natury bardziej ograniczone niż alternatywy. Czy rozważałeś użycie jednego schematu, jednej konfiguracji, ale wielu celów? – Jim
Doświadczyłem już wielu celów w projekcie i nienawidziłem go: zbyt wiele pól wyboru do sprawdzenia za każdym razem, gdy dodasz nowy kod do projektu. Ale może miałoby to sens tutaj. –