Ok, voici une réponse à la raison pour laquelle ça arrive, mais je ne connais pas la solution. Si vous utilisez le "Other Swift Flag" -driver-show-incremental, Xcode affichera ce qu'il décide de compiler en se basant sur les dépendances. Vous verrez des choses comme :
Queuing EditProfileViewController.swift because of dependencies discovered later
Queuing ChangePasswordViewController.swift because of dependencies discovered later
Queuing JoinViewController.swift because of dependencies discovered later
Queuing JoinProfileViewController.swift because of dependencies discovered later
Queuing FormViewBuildable.swift because of dependencies discovered later
Queuing RadioTextFormView.swift because of dependencies discovered later
Queuing TextFieldFormView.swift because of dependencies discovered later
Queuing AccountProfileViewController.swift because of dependencies discovered later
Je me demande si c'est un problème lié à Swift 3, car je n'avais pas ce problème avant la conversion. J'ai fait un petit projet d'exemple où
Le fichier A comprend un élément du fichier B comprend un élément du fichier C.
et même l'ajout d'un changement de fichier privé à FichierC qui n'est utilisé nulle part fait que FichierA, FichierB, et FichierC sont mis en file d'attente pour la compilation à cause des dépendances. Je vais tester cet exemple dans Xcode 7 plus tard dans la journée pour voir ce qui se passe.
Il semble donc que la résolution de la dépendance du martinet 3 ne fonctionne pas très bien. J'ai testé cela sur 2 autres projets swift 3 au travail, et c'est la même chose. Faites n'importe quel changement dans n'importe quel fichier, et chaque fichier est compilé. Cela ne semble pas lent jusqu'à ce que vous commenciez à avoir des projets d'environ 15 000 lignes de code, ce qui peut être la raison pour laquelle personne ne parle beaucoup de cela. A moins que vous n'ayez une application swift 3 de taille moyenne, vous ne remarquerez probablement même pas que la complication incrémentale ne fonctionne pas tout à fait correctement. Je mettrai à jour si j'apprends quelque chose de plus.