2013-08-07 20 views
5

Attualmente sto utilizzando xcodebuild per automatizzare i test per iOS.Passare i flag del compilatore tramite xcodebuild

In questo momento, sono bloccato nel tentativo di passare i flag del compilatore tramite Xcode direttamente al compilatore. Queste bandiere sono: -fprofile-arcs -ftest-coverage.

Non ho la libertà di modificare xcodeproj, ecco perché voglio iniettare questi flag tramite il comando xcodebuild.

Sarebbe qualcosa di simile:

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

è che fattibile? Come?

+1

provare a impostare utilizzando l'argomento OTHER_CFLAGS – borrrden

+0

L'argomento OTHER_CFLAGS è già utilizzato nelle impostazioni xcodeproj purtroppo :(ma ho avuto una soluzione :) un'occhiata qui sotto. – aspyct

risposta

5

Apparentemente, la maggior parte dei flag del compilatore può essere espressa come costanti e questi possono essere passati al compilatore tramite xcodebuild facilmente.

Per ottenerli, è sufficiente selezionare l'opzione nella vista delle impostazioni di generazione xcode e premere il comando -C (copia). Nel mio caso, erano GCC_GENERATE_TEST_COVERAGE_FILES e GCC_INSTRUMENT_PROGRAM_FLOW_ARCS.

mio comando è più o meno in questo modo:

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

Attenzione, questa risposta potrebbe portare a confusione. In questo caso non stai davvero passando i flag del compilatore, solo sovrascrivendo il valore di alcuni flag di ambiente Xcode, che a loro volta impostano i corrispondenti flag del compilatore. Se si desidera impostare un flag di compilatore personalizzato, è necessario eseguire l'override di env var OTHER_CFLAGS. –

2

Sì, tutte le impostazioni in realtà compilatore si riduce a stringa coppie chiave-valore. Ho risposto una domanda molto simile sull'impostazione macro del preprocessore dalla riga di comando che è altrettanto applicabile a queste impostazioni che si desidera impostare:

Setting a #define from the command line in xcode 4.6

Vorrei anche richiamare l'attenzione all'uso di $ { inherited}: l'utilizzo di questi valori consente di utilizzare i valori specificati dal progetto Xcode E di aggiungerne di propri. La documentazione per ciascuna delle impostazioni di generazione, compresi quelli che si trova tramite copia-incolla può essere trovato qui:

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

contento che tu fossi in grado di farlo funzionare - ora si può davvero fare xcodebuild fare ancora di più per te senza richiedere modifiche al progetto Xcode di destinazione!

+0

Interessante, grazie per le informazioni aggiuntive :) – aspyct

2

Per impostare i flag del compilatore con xcodebuild, è necessario inserirli nell'opzione OTHERCFLAGS.

Ad esempio:

xcodebuild -project path/to/my.xcodeproj -scheme MyApp \ 
    OTHERCFLAGS="-fprofile-arcs -ftest-coverage" 
Problemi correlati