2012-10-22 21 views
5

Attualmente sto lavorando su un'app in Xcode in cui ho aggiunto una fase di generazione che esegue uno script di shell.Come interrompere Xcode build dallo script di shell

Lo script cerca le risorse dal desktop e le copia nell'app. Se i file/cartelle non esistono, lo script dovrebbe annullare la build dell'app.

Ho provato varie cose per fermare la build come xcodebuild clean ma non riesco a capirlo. Ecco cosa ho:

if [ -d ~/Desktop/MyFolder ]; then 
    cp -r ~/Desktop/MyFolder ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/MyFolder 
else 
    #Stop the build 
fi 

C'è un modo per avere lo script dire a Xcode di fermare la compilazione? Se è così, come posso farlo?

risposta

5

è necessario restituire un codice di uscita diverso da zero dallo script:

exit 1 
+0

Grande, grazie !! –

2

Un'altra tecnica utile è per lo script di produrre un'uscita con un "errore:" prefisso. Questo farà sì che Xcode mostri l'errore nei log di compilazione, e se le impostazioni di Xcode smettono di crearsi in caso di fallimento, si fermeranno proprio lì.

Oltre a questo, è anche possibile attivare un avviso stampando il prefisso "warning:".

Esempio:

if [ -d ~/Desktop/MyFolder ]; then 
    cp -r ~/Desktop/MyFolder ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/MyFolder 
else 
    echo "error: Copy failed!" 
fi 
+0

Il vantaggio di questo rispetto a 'exit 1' è che mostra l'errore effettivo nel riquadro Errori di compilazione –

Problemi correlati