Je faisais face aux mêmes avertissements après avoir mis à jour vers Xcode 8 GM, plus de 350. La plupart d'entre eux étaient des fichiers .swift et des images dans le catalogue de ressources.
Il s'agit essentiellement d'un problème de contrôle de source qui semble apparaître principalement lorsque vous déplacez/supprimez des fichiers de projet. Il s'agit soit de nouveaux avertissements, soit Xcode 8 est simplement beaucoup plus strict avec le contrôle de la source que Xcode 7.
Après avoir cherché sur Google, j'ai trouvé quelques réponses, mais elles me semblaient compliquées, par exemple l'utilisation de la ligne de commande ou même la suggestion de désactiver et de réactiver le contrôle de la source.
Voici ce qui a fonctionné pour tous mes projets.
Chemin court
Essayez d'abord ceci et si cela ne marche pas, faites le chemin le plus long.
1) Allez dans le menu Source Control (menu supérieur à côté de window et help) et cliquez sur Refresh Status (rafraîchir l'état)
2) Allez à nouveau dans le menu Source Control et cliquez sur commit
3) La fenêtre de commit devrait s'ouvrir avec tous les commits que Xcode pense être nécessaires. Il suffit donc d'entrer un commit dans le champ de texte et d'appuyer sur le bouton commit.
Répétez les étapes 1-3 jusqu'à ce qu'il n'y ait plus d'éléments sélectionnés par Xcode lorsque vous ouvrez le menu de livraison. Ne passez pas à l'étape 4 avant que tous les éléments sélectionnés automatiquement par Xcode aient été validés, sinon vous pourriez obtenir une erreur lors de l'étape 4.
4) Ouvrez à nouveau la fenêtre de commit et comme mentionné dans l'étape 3, il ne devrait plus y avoir d'éléments sélectionnés par Xcode. Cependant, vous devriez toujours voir quelques éléments dans la barre latérale gauche qui sont ceux qui causent les messages d'avertissement.
Cliquez avec le bouton droit de la souris sur un élément et sélectionnez tout, entrez un commit dans le champ de texte et appuyez ensuite sur le bouton commit. Tout devrait se terminer et les avertissements/erreurs devraient disparaître (vous pouvez éventuellement appuyer sur CommitMenu->Refresh Status à nouveau).
S'il ne se termine pas, fermez/réouvrez Xcode et recommencez les étapes 1-4.
Si cela ne fonctionne pas non plus, le long chemin devrait régler le problème.
Le long chemin
Si vous utilisez le contrôle de la source et que vous faites des commits régulièrement, faites éventuellement l'étape 1 et vous devriez pouvoir passer directement à l'étape 11.
1) Nettoyer les données dérivées de xCode (optionnel)
En général, vous n'avez pas à le faire, alors sautez cette étape lors de votre première tentative et passez à l'étape 3.
Allez dans les préférences de Xcode, cliquez sur l'onglet "locations", puis allez dans "advanced". Cliquez sur la petite flèche à côté du bouton avancé pour ouvrir le chemin du dossier dérivé. Fermez complètement Xcode et supprimez ensuite tout le contenu qui se trouve dans ce dossier dérivé.
Comme le membre Krivvenz l'a si gentiment indiqué dans sa réponse, il se peut que vous ayez à le faire de manière facultative. Je n'ai pas eu à le faire moi-même, alors peut-être que vous pouvez sauter cette étape et ne l'essayer que si cela ne fonctionne pas.
"J'ai également dû changer mon option DerivedData de relative à Custom qui peut être trouvée dans Xcode > Preferences > Locations Tab".
2) Relancez votre projet Xcode et attendez que l'indexation se termine. Cela peut prendre quelques minutes car vous venez de supprimer les données dérivées.
3) Allez dans le menu Source Control (menu supérieur à côté de window et help) et cliquez sur Refresh Status (rafraîchir l'état)
4) Allez à nouveau dans le menu Source Control et cliquez sur commit
5) La fenêtre de commit devrait s'ouvrir avec tous les commits que Xcode pense être nécessaires. J'en ai plus de 250 car je n'ai jamais utilisé le contrôle de source auparavant.
6) Cliquez sur "commit changes" en bas à droite
7) J'ai eu une erreur et l'opération ne s'est pas terminée (si cela fonctionne pour vous, passez au point 11).
8) Allez dans le menu Contrôle de la source et cliquez sur Rafraîchir l'état.
9) Allez dans Source Control et cliquez sur commit
10) Cliquez sur valider les modifications en bas à droite. Cette fois, il a suggéré environ 30 commits de moins et je n'ai eu aucune erreur. Si vous obtenez toujours des erreurs lors de votre deuxième tentative, essayez de fermer complètement Xcode, puis de le rouvrir et de répéter cette étape.
11) Allez dans le menu Contrôle de la source et cliquez sur Rafraîchir l'état.
12) Allez dans le menu de contrôle de la source et cliquez sur commettre
13) Cette fois-ci, il ne devrait pas y avoir de changements recommandés par Xcode mais vous verrez toujours beaucoup de fichiers dans le menu commit à gauche (non coché). Ces fichiers sont à l'origine des avertissements de la copie de travail, qui devraient également être présents.
14) Sélectionnez chacun de ces fichiers dans la barre latérale gauche du menu de livraison. Vous pouvez faire un clic droit et appuyer sur check all
15) Cliquez sur "commit changes" en bas à droite
16) J'ai eu une erreur et l'opération n'a pas abouti. J'ai donc réessayé et la même erreur s'est produite, j'ai donc fermé le menu commit. Si l'opération se termine pour vous, c'est bien aussi.
17) Allez dans le menu Contrôle de la source et cliquez sur Rafraîchir l'état.
Boom, tous les avertissements ont disparu.
18) Fermez complètement votre projet et Xcode
19) Ouvrez à nouveau votre projet
20) Allez dans le menu Contrôle de la source et cliquez sur Rafraîchir le statut.
21) Allez dans le menu Source Control et cliquez sur commit
22) J'ai soudainement eu 150+ commits suggérés à nouveau. Assurez-vous que toutes les suggestions sont sélectionnées, puis cliquez sur commiter et cela devrait se terminer sans erreur.
23) Nettoyer votre projet (Produit->Nettoyage)
24) Allez dans le menu Source Control et cliquez sur commit. Il ne devrait pas y avoir de changements requis et il ne devrait pas non plus y avoir de fichiers dans la barre latérale gauche.
Après tout cela, je n'ai plus d'avertissements, je n'ai pas eu besoin de supprimer le contrôle de la source et tout fonctionne à nouveau comme d'habitude.
Si vous rencontrez d'autres erreurs à l'avenir, par exemple parce que vous avez à nouveau déplacé un fichier, il suffit de refaire des commits en s'assurant que tout est sélectionné.
J'espère que cela vous aidera.
0 votes
Je les ignore simplement, ils semblent être un bug de xcode sans effet sur la construction réelle.
0 votes
D'après mon expérience, la seule façon fiable de supprimer le dossier DerivedData est de fermer Xcode d'abord. Cela forcera une recompilation complète lors de la prochaine construction. Parfois, Xcode semble empêcher la suppression de ce répertoire ou, au moins, de certains de ses contenus.
0 votes
J'ai essayé ce Vince et ça ne marche pas. Vous voyez un message en haut de XCode disant qu'il indexe et lie les fichiers mais les erreurs sont toujours là. Je pourrais essayer de recréer mon projet et de copier et coller chaque fichier dans un nouveau projet.
0 votes
Avez-vous trouvé une solution à ce problème ? J'ai les mêmes problèmes depuis la mise à niveau vers xCode 8 GM. J'ai trouvé quelques suggestions mais je ne les comprends pas.
0 votes
J'ai réussi à le réparer. Si vous avez toujours ce problème, consultez la réponse.