Come posso limitare una fase di compilazione "Run Script" alla mia configurazione di rilascio?


138

Ho uno script di shell che vorrei eseguire alla fine della fase di compilazione del mio target. Tuttavia, vorrei che questo script fosse eseguito solo quando ho compilato con la configurazione di rilascio . Come si può fare? Grazie!

Risposte:


295
if [ "${CONFIGURATION}" = "Release" ]; then
  echo Do something really release-like
fi

Lo script verrà eseguito alla fine di ogni configurazione, ma in questo caso non farà nulla a meno che la configurazione non sia Rilascio (presupponendo che tutto ciò che fa sia contenuto nel blocco di test).


1
Ho appena scoperto che non funziona con nomi di configurazione a più parole. Funziona con "Release" ma non con "Internal Beta".
Hedin,

4
@Hedin - questo è solo bash; se hai una variabile multi-parola, devi racchiudere la variabile tra virgolette. Quindi $ {CONFIGURATION} diventa "$ {CONFIGURATION}". Aggiornerò la risposta per includerla.
Jason Coco

15
Ho le configurazioni "Debug", "Release" (per strumenti), "Ad hoc" e "App Store" (con diverse firme di codice), quindi l'ho cambiato per if [ "${CONFIGURATION}" != "Debug" ]; then....
Nicolas Miari,

1
Per la condizione if voglio usare un #define TRUE / FALSE memorizzato nel file .pch .. come lo farei riferimento nel codice dello script?
newton_guima,

2
Questa stessa cosa può essere realizzata con flag pre-processore?
Justin Vallely,

15

Il modo più semplice per farlo è selezionare la casella di controllo "Esegui script solo durante l'installazione".



4
"L'installazione del debug su un dispositivo reale (compilazione ed esecuzione da Xcode) non conta come" installazione ". Lo script di esecuzione viene eseguito solo durante l'archiviazione (testato con Xcode 9)." stackoverflow.com/questions/5913199/...
darkheartfelt

2
Non funzionerà se desideri creare la tua app in Releaseconfigurazione senza archiviarla. La domanda riguardava esplicitamente la Releaseconfigurazione.
Legonaftik,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.