Comment activer la synchronisation de construction dans Xcode?

90

J'aimerais savoir combien de temps durent les builds de mon projet, par exemple en l'affichant dans le volet build. Cette option est-elle disponible quelque part dans Xcode?

Merci.

Guillaume
la source

Réponses:

178

Tapez ceci dans le terminal:

defaults write com.apple.dt.Xcode ShowBuildOperationDuration YES

La durée apparaît dans la visionneuse d'activité après une compilation, à côté du message "Réussi".

Si vous exécutez l'application, l'état sera remplacé par l'état d'exécution avant que vous puissiez voir la durée.

Cela remplace l'entrée qui était utilisée dans les anciennes versions de Xcode:

les valeurs par défaut écrivent com.apple.Xcode ShowBuildOperationDuration OUI

Xcode devra peut-être être fermé avant d'entrer cette commande. Les durées doivent apparaître en bas à gauche de la fenêtre du projet.

Commentaire d'un développeur Xcode: "Comme pour toutes les valeurs par défaut des utilisateurs non documentées, cela n'est pas pris en charge, supposé (mais non garanti) exact, et pas assuré d'être efficace dans les versions futures."

Guillaume
la source
7
Cela fonctionne également pour Xcode 6. Le temps de construction est indiqué sous la barre de titre de la fenêtre.
Klaas le
6
@bobobobo Capture d'écran de l'endroit où l'heure apparaît dans Xcode 6.1.1 <img src = " i.imgur.com/6KkYdls.png ">
chunkyguy
2
Un moyen de l'imprimer, dans un fichier?
Alex Bartiş
1
Confirme que cela fonctionne pour moi dans Xcode 7.1.1 (en utilisant le plus récent com.apple.dt.Xcode)
Jedidja
1
Si quelqu'un d'autre se demande, le visualiseur d'activité se trouve dans la fenêtre en haut du milieu de xcode où il montre ce qui est en cours de construction et dans quelle mesure il en est.
Warpzit
13

non, mais vous pouvez utiliser la ligne de commande. cd dans le répertoire de votre projet et tapez

time xcodebuild
Nikolai Ruhe
la source
13

Dans Xcode 10, vous pouvez maintenant voir une bonne répartition des temps de construction à l'aide de leur fonction de résumé de synchronisation.

Produit-> Effectuer une action-> Construire avec un résumé de synchronisation

Cela montrera chacun de vos temps de construction cibles et le temps de construction global du projet. Vous pouvez effectuer de nombreuses analyses en utilisant ces données et les temps de construction dépendront de votre matériel. Consultez Building Faster in Xcode de la WWDC 2018 si vous souhaitez en savoir plus.

Cependant, Xcode garde une trace de toutes vos constructions par défaut et vous pouvez examiner leurs heures et leurs journaux en accédant à leur navigateur de rapports.

Créer des journaux dans le navigateur de rapports

Andrew
la source
il n'y a aucun moyen que je puisse enregistrer le journal de construction de XCode avec les horaires. Je ne peux voir l'heure que dans la sortie XCode
msk
3

Je l'ai résolu avec Run Scripts dansBuild Phases

J'ai ajouté un Run Script au point de départ de la construction:

echo $(date +%s) > ../build_start_time

et un à la fin:

START=$(cat ../build_start_time)
END=$(date +%s)
echo $(echo "$END - $START" | bc)

Maintenant, je peux voir l'heure dans le journal de compilation -> Tous les messages

adsurbum
la source
1
Dans Xcode 6.4, il ne vous permettra pas de faire glisser une phase de construction de script d'exécution avant l'une des phases de construction "stock". Si vous créez un tas de phases de construction supplémentaires, cela vous permettra de les réorganiser entre elles, mais il semble que toutes les phases de construction «stock» doivent venir en premier. Avez-vous trouvé un moyen de contourner cela?
Jason Pepas
0

Après Xcode 10

  • si vous construisez à partir de la ligne de commande, utilisez -buildWithTimingSummarypour voir le résumé de l'heure de construction.
xcodebuild -buildWithTimingSummary
Build Timing Summary
CompileSwiftSources (1 task) | 5.434 seconds
PhaseScriptExecution (1 task) | 5.046 seconds
CompileAssetCatalog (1 task) | 2.788 seconds
CompileStoryboard (1 task) | 1.880 seconds CompileMetalFile (5 tasks) | 1.735 seconds
CopySwiftLibs (1 task) | 0.740 seconds
Ld (2 tasks) | 0.306 seconds
CodeSign (3 tasks) | 0.177 seconds
CompileC (1 task) | 0.170 seconds
MetalLink (2 tasks) | 0.046 seconds
Ditto (4 tasks) | 0.032 seconds
LinkStoryboards (1 task) | 0.023 seconds
  • Si vous utilisez Xcode, Product->Perform Action->Build With Timing Summary. Et voir le résumé du temps de construction dans le journal de construction Xcode.
RY Zheng
la source
De nos jours, le bon argument de ligne de commande est-showBuildTimingSummary
Morse