2011-06-29 9 views
5

Piszę skrypt, aby zautomatyzować mój budynek iOS. Będzie uruchamiany poza Xcode, za pośrednictwem Terminalu lub z oprogramowania do automatyzacji kompilacji. Czy istnieje jakiś sposób uzyskania dostępu do zmiennych środowiskowych Xcode w moim skrypcie, więc nie muszę sam ich wypróbowywać?Jak uzyskać dostęp do środowiska Xcode (i kompilacji) ze skryptu zewnętrznego?

Na przykład, czy mogę uzyskać dostęp do PROJECT_DIR zamiast zakładać, że jestem w bieżącym katalogu i uruchomić pwd?

Aktualnie mam na twardym dysku nazwy produktów dla różnych konfiguracji kompilacji. (Ja też ciężko koduję konfiguracje kompilacji, ale mogę je przetworzyć z xcodebuild -list.) Czy istnieje sposób na pobranie aplikacji, jeśli znasz nazwę konfiguracji kompilacji?

(widziałem to related question ale to nie ma dla mnie odpowiedzi.)

+0

Zastanawiam się, czy możliwe jest użycie Dtrace do uzyskania zmiennych env, ale jeśli znaleźć tylko to: http://opensolaris.org/jive/thread.jspa?threadID=954 –

+0

Dlaczego różne konfiguracje mają różne nazwy produktów? Czy nie powinny być one różne * cele *? Większość projektów ma Debugowanie, Wydanie i prawdopodobnie Dystrybucję/AppStore/AdHoc. Ogólnie rzecz biorąc, dla celu o nazwie MyApp, chcesz, aby wyjście było MyApp.app, aby uniknąć nieporozumień. Nasz system kompilacji robi czyste kasy/kompilacje, więc naprawdę powinien być tylko jeden .app w katalogu wyjściowym (chociaż w kilku miejscach kodujemy wyjściowy katalog jako build/AppStore-iphoneos lub podobny). –

Odpowiedz

10

Zmienne środowiskowe Xcode są określone tylko dla procesów potomnych narzędzia xcodebuild wiersza polecenia.

Jednym z rozwiązań, których używałem, jest posiadanie bardzo prostego skryptu jako części mojego procesu budowania (Projekt-> Nowa faza budowy-> Dodaj fazę tworzenia skryptu uruchamiania). Cały ten skrypt wykonuje eksport niezbędnych zmiennych i wywołuje gdzieś skrypt w mojej ścieżce.

Ten skrypt może zostać wygenerowany przez skrypt kompilacji przed wywołaniem xcodebuild i voilà! masz zewnętrzny skrypt, który ma dostęp do zmiennych kompilacji Xcode.

Powiązane problemy