2013-08-07 14 views
5

Aktualnie używam xcodebuild do automatyzacji testowania dla iOS.Przekazywanie flag kompilatora przez xcodebuild

Teraz utknąłem na stara się przekazać flagi kompilatora przez Xcode bezpośrednio do kompilatora. Te flagi to: -fprofile-arcs -ftest-coverage.

nie mam swobodę modyfikowania xcodeproj, dlatego chcę, aby wprowadzić te flagi za pomocą polecenia xcodebuild.

To byłoby coś jak:

xcodebuild -project path/to/my.xcodeproj -scheme MyApp -fprofile-arcs -ftest-coverage 

Czy to jest wykonalne? W jaki sposób?

+1

Spróbuj ustawić je za pomocą argumentu OTHER_CFLAGS – borrrden

+0

OTHER_CFLAGS argumentem jest już używany w ustawieniach xcodeproj niestety :(ale mam rozwiązanie :) Spójrz poniżej. – aspyct

Odpowiedz

5

Najwyraźniej większość flag kompilatora może być wyrażona jako stałe, a te mogą być przekazywane do kompilatora poprzez xcodebuild łatwo.

Aby je zdobyć, wystarczy wybrać opcję w Xcode zobaczyć ustawienia budować, a hit Command + C (kopiuj). W moim przypadku były to: GCC_GENERATE_TEST_COVERAGE_FILES i GCC_INSTRUMENT_PROGRAM_FLOW_ARCS.

Moje polecenia z grubsza wygląda tak:

xcodebuild GCC_GENERATE_TEST_COVERAGE_FILES=YES GCC_INSTRUMENT_PROGRAM_FLOW_ARCS=YES ... 
+2

Uwaga, ta odpowiedź może prowadzić do zamieszania. W rzeczywistości nie przekazuje się tutaj flag kompilatora, tylko przesłonię wartość niektórych flag środowiska Xcode, które z kolei ustawiają odpowiednie flagi kompilatora. Jeśli zamiast tego chcesz ustawić niestandardową flagę kompilatora, musisz zastąpić zmienną env var. –

2

Tak, wszystko kompilatora zachodzącego w rzeczywistości sprowadza się do par klucz-wartość ciągu. Odpowiedziałem bardzo podobne pytanie o ustawienie makr preprocesora z linii poleceń, która jest tak samo stosuje się do tych ustawień, które chcesz ustawić:

Setting a #define from the command line in xcode 4.6

Chciałbym również zwrócić uwagę na wykorzystanie $ { inherited} - użycie tych wartości pozwala użyć wartości określonych przez projekt Xcode ORAZ dołączyć własne. Dokumentacja dla każdego z ustawień kompilacji, w tym tych, które zlokalizowane poprzez kopiowania i wklejania można znaleźć tutaj:

http://developer.apple.com/library/mac/documentation/DeveloperTools/Reference/XcodeBuildSettingRef/1-Build_Setting_Reference/build_setting_ref.html

Cieszę się, że udało nam się dostać do pracy - teraz naprawdę można zrobić xcodebuild zrobić nawet więcej dla Ciebie bez konieczności zmiany docelowego projektu Xcode!

+0

Ciekawe, dziękuję za dodatkowe informacje :) – aspyct

2

Aby ustawić flagi kompilatora z xcodebuild, trzeba umieścić je w opcji OTHERCFLAGS.

Na przykład:

xcodebuild -project path/to/my.xcodeproj -scheme MyApp \ 
    OTHERCFLAGS="-fprofile-arcs -ftest-coverage" 
Powiązane problemy