Zmienne Xcode

103

W Xcode wiem, że można uzyskać zmienne, których można PROJECT_DIRużyć w niektórych sytuacjach, takich jak faza budowy skryptu uruchamiania. Zastanawiam się, czy można uzyskać typ kompilacji (tj. Release lub Debug ). Jakieś pomysły?

Allyn
źródło

Odpowiedzi:

147

Najlepszym źródłem jest prawdopodobnie oficjalna dokumentacja Apple . Konkretna zmienna, której szukasz, to KONFIGURACJA.

smorgan
źródło
8
Podoba mi się sposób, w jaki Xcode odmawia wyświetlenia tej strony, jeśli wpiszesz „ustawienia kompilacji” w polu wyszukiwania - otrzymujesz INNE ustawienia kompilacji, bez odniesienia do tych zmiennych. Podobnie, jeśli umieścisz „zmienne kompilacji”. Ktoś powinien nauczyć Apple pisać algorytm wyszukiwania :)
Adam
24
Jeśli próbujesz utworzyć "fazę tworzenia skryptu uruchamiania", możesz rozpocząć od tego skryptu wpisując "env" (bez cudzysłowów) jako pierwszą linię skryptu powłoki bash (lub równoważne polecenie dla powłoki, którą chcesz ponownego użycia) i skompiluj swój projekt. Spowoduje to wyświetlenie wszystkich dostępnych zmiennych środowiskowych. Możesz użyć tego w połączeniu z dokumentacją, aby upewnić się, że otrzymujesz oczekiwane dane.
Ryan H.
3
Myślę, że zmarnowałem pół godziny, próbując znaleźć dokumentację zawierającą / wyjaśniającą zmienne środowiskowe dostępne dla skryptów. Wysłałem prośbę o „ulepszenie” z pytaniem, dlaczego nie mogą po prostu umieścić tam jednego z tych okrągłych przycisków ze znakiem zapytania z łączem do odpowiedniej strony pomocy. Świetna propozycja HZC, choć szkoda, że ​​nie było to konieczne.
Brian
3
Również smutne, że podstawowy $ PROJECT_DIR nie jest nigdzie wspomniany w tym oficjalnym dokumencie. Myślę, że to tylko (lepiej nazwany) alias dla $ SRCROOT.
Ricardo Sanchez-Saez
4
Apple lubi okresowo przestawiać całą swoją dokumentację i przerywać wszystkie istniejące linki. Ktoś będzie musiał wytropić nowe łącze.
smorgan
20

Oto lista zmiennych środowiskowych . Myślę, że możesz chcieć CURRENT_VARIANT. Zobacz także BUILD_VARIANTS.

Naaff
źródło
Ok, więc kiedy używam char * cv = getenv ("CURRENT_VARIANT"); Otrzymuję NULL. czego mi brakuje?
Brooks
1
Druga odpowiedź jest prawidłowa. To nie jest. KONFIGURACJA jest tym, czego chcą.
Baxissimo
A to nie jest nawet pełna lista ... połowa prawdy
Evils