web-dev-qa-db-fra.com

Comment afficher la sortie du compilateur ou la sortie de construction personnalisée lorsque vous construisez avec Xcode?

Comment puis-je voir la sortie du compilateur des étapes de construction personnalisées (pré-action ou post-action)?

33
sorin

La sortie pré-action apparaît au moins dans System.Log et est visible dans la console.app.

14
Jonah

Vous trouverez (et vous pouvez regarder pendant la construction) la sortie complète de la version dans le navigateur de journal. C'est la bonne icône la plus bonne des petites icônes juste en dessous des boutons de course et de construction.

28
Codo

Modifier: Comme indiqué dans le commentaire ci-dessous cette réponse ne fonctionne que pour la construction de scripts de phase, pas d'acte et de scripts d'action.


Dans Xcode 8, vous devez sélectionner votre dernière construction dans "Navigator -> Signaler Navigator". Dans la zone principale, vous pourrez voir le journal complet de construction, y compris votre sortie.

Navigator selection

Voici un simple "monde Hello" Echo

Log

4
Nikola Lajic

Par ma réponse ici ( est-il normal pour Xcode de ne pas détecter si une pré-action a échoué? ) Il s'agit d'un problème qui a été discuté dans les forums de développement. Le script avant/après l'action, le statut non zéro ne semble pas avoir d'effet, ni la sortie ne semble entrer dans des journaux.

4
Joshua Nozzi

J'ai donc compris un moyen de faire:

  1. Afficher la sortie des scripts de pré-construction
  2. Arrêtez le script de construction dans le cas d'une erreur de construction

Le concept de base consiste à envoyer toutes les sorties de l'événement de construction à divers fichiers, puis à présenter cette sortie en tant que partie d'un script de construction cible (qui indique sa sortie et peut être excitée ou annulée).

Avertissement Les hacks soient proches


Configurez un script de construction qui gère automatiquement la sortie de la sortie sur 2 fichiers différents ... 1 pour les journaux réguliers et un pour stardr. Ou utiliser mine (j'ai posté sur mon blog car il semble que la détection de code de dépassement de pile craint des scripts shell.)

Ensuite, vous devriez appeler ce script dans la phase de pré-programme Schémise comme suit:

"${PATH_TO_LOG_SCRIPT}/log_prebuild.sh" "${PATH_TO_PREBUILD_SCRIPT_TO_EXECUTE}/scriptToExecute.sh" 2> "${SOURCE_ROOT}/build/prebuild_error.log"

Ensuite, vous devez configurer un script avant la phase de compilation dans les phases de construction cible qui vérifient la présence de ces fichiers, les interrompt sur les journaux et interrompt la construction s'il y avait une défaillance. Ou vous pouvez à nouveau utiliser mien

Puis construire et traverser vos doigts :)

2
BadPirate