web-dev-qa-db-fra.com

Swift 3 / Xcode 8 Upgrade - 100 de fichiers DerivedData manquants à cause d'erreurs de copie de travail

Je viens de passer à la dernière version bêta de XCode et Swift mais après avoir utilisé le convertisseur, mon projet d'application a maintenant plus de 200 erreurs de temps de génération indiquant toutes/"projectDirectoy"/DerivedData/XXXXXXXXX/XXXX/XXX/xXXX/xXX est manquant dans la copie de travail ... où les XXXXX représentent différents chemins de fichier dans le dossier DerivedData.

J'ai essayé de supprimer le dossier DerivedData de l'emplacement mentionné dans les erreurs.

J'ai essayé de tout supprimer dans le dossier DerivedData dans ~/Library /.

J'ai essayé plusieurs fois de nettoyer le projet, de redémarrer et de faire une nouvelle version.

J'ai essayé de désactiver le contrôle de source dans les préférences, mais je ne vois pas pourquoi je devrais le désactiver tel qu'il était avant la mise à jour, donc je veux qu'il reste activé.

Ces erreurs ne semblent tout simplement pas disparaître.

Des idées?

42
Krivvenz

J'étais confronté aux mêmes avertissements après la mise à jour vers xCode 8 GM, plus de 350. La plupart d'entre eux contenaient des fichiers et des images .Swift dans le catalogue d'actifs.

Il s'agit essentiellement d'un problème de contrôle de code source qui semble principalement apparaître lorsque vous déplacez/supprimez des fichiers de projet. Ce sont de nouveaux avertissements ou xCode 8 est juste beaucoup plus strict avec le contrôle de source que xCode 7.

Après avoir googlé à ce sujet, j'ai trouvé des réponses, mais elles me semblaient compliquées, par exemple en utilisant la ligne de commande ou même en suggérant de désactiver et de réactiver le contrôle des sources.

Voici ce qui a fonctionné pour tous mes projets.

Chemin court

Essayez d'abord et si cela ne fonctionne pas, faites le long chemin

1) Allez dans le menu Contrôle de source (menu supérieur à côté de la fenêtre et de l'aide) et cliquez sur Actualiser l'état

2) Revenez au menu Contrôle de source et cliquez sur valider

) La fenêtre de validation devrait s'ouvrir avec toutes les validations que xCode estime nécessaires. Il suffit donc de saisir un commit dans la zone 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 validation. N'allez pas à l'étape 4 tant que tous les éléments sélectionnés automatiquement par xCode n'ont pas été validés, sinon vous risquez d'obtenir une erreur lors de l'étape 4.

4) Ouvrez à nouveau la fenêtre de validation et comme mentionné à l'étape 3, il ne devrait plus y avoir d'éléments sélectionnés par xCode. Cependant, vous devriez toujours voir certains éléments dans la barre latérale gauche qui sont ceux qui provoquent les messages d'avertissement.

Cliquez avec le bouton droit sur un élément et appuyez sur tout sélectionner, entrez un commit dans le champ de texte et appuyez sur le bouton commit. Tout devrait se terminer et l'avertissement/les erreurs devraient disparaître (éventuellement appuyer à nouveau sur CommitMenu-> Refresh Status).

S'il ne se termine pas, fermez/rouvrez xCode et recommencez l'étape 1-4.

Si cela ne fonctionne pas non plus, le long chemin devrait le réparer.

Long chemin

Si vous utilisez le contrôle de code source et que vous effectuez régulièrement des validations, effectuez éventuellement l'étape 1 et vous devriez pouvoir passer directement à l'étape 11.

1) Nettoyer les données dérivées de xCode (en option)

Vous n'avez généralement pas à le faire, alors ignorez cette étape lors de votre première tentative et passez à l'étape 3.

Accédez aux préférences de xCode, cliquez sur l'onglet "emplacements", puis accédez à avancé. Cliquez sur la petite flèche à côté du bouton avancé pour ouvrir le chemin d'accès au dossier dérivé. Fermez complètement xCode et supprimez tout le contenu qui se trouve dans ce dossier dérivé.

Comme le député Krivvenz l'a si gentiment souligné dans sa réponse, vous devrez peut-être le faire en option. Je n'ai pas eu à le faire moi-même, alors sautez peut-être cela et essayez-le uniquement si cela ne fonctionne pas.

"J'ai également dû changer mon option DerivedData de relative à Custom qui peut être trouvée dans Xcode> Préférences> onglet Emplacements."

2) Relancez votre projet xCode et attendez la fin de l'indexation. Cela peut prendre quelques minutes car vous venez de supprimer les données dérivées.

) Allez dans le menu Contrôle de source (menu supérieur à côté de la fenêtre et de l'aide) et cliquez sur Actualiser l'état

4) Revenez au menu Contrôle source et cliquez sur commit

5) La fenêtre de validation devrait s'ouvrir avec toutes les validations que xCode estime nécessaires. J'en avais plus de 250 car je n'avais jamais utilisé le contrôle de source auparavant.

6) Cliquez sur commit changes en bas à droite

7) J'ai une erreur et l'opération n'est pas terminée (si cela fonctionne pour vous, passez à 11)

8) Allez dans le menu Contrôle de source et cliquez sur Actualiser l'état

9) Allez dans le contrôle de code source et cliquez sur commit

10) Cliquez sur commit changes 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 2e tentative, fermez complètement Xcode, puis rouvrez-le et répétez cette étape.

11) Allez dans le menu Contrôle de source et cliquez sur Actualiser l'état

12) Allez dans le menu Contrôle source et cliquez sur commit

13) Cette fois, il ne devrait y avoir aucun changement recommandé par xCode mais vous verrez toujours beaucoup de fichiers dans le menu de validation à gauche (non coché). Ce sont ces fichiers qui lancent les avertissements de copie de travail, qui devraient également être toujours là.

14) Sélectionnez chacun de ces fichiers dans la barre latérale gauche du menu de validation. Vous pouvez cliquer avec le bouton droit et appuyer sur tout cocher

15) Cliquez sur commit changes en bas à droite

16) J'ai eu une erreur et l'opération ne s'est pas terminée. J'ai donc réessayé et même erreur, j'ai donc fermé le menu commit. Si cela se termine pour vous, c'est bien aussi.

17) Allez dans le menu Contrôle de source et cliquez sur Actualiser 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 source et cliquez sur Actualiser l'état

21) Allez dans le menu Contrôle de source et cliquez sur commit

22) J'ai soudainement proposé plus de 150 commits. Assurez-vous que toutes les suggestions sont sélectionnées et cliquez sur valider et cela devrait se terminer sans erreurs.

23) Nettoyez votre projet (Produit-> Nettoyer)

24) Allez dans le menu Contrôle de source et cliquez sur valider. Aucune modification ne doit être requise et aucun fichier ne doit également apparaître dans la barre latérale gauche.

Après tout cela, je n'ai plus d'avertissement, je n'ai pas eu besoin de supprimer le contrôle de code source et tout fonctionne à nouveau comme d'habitude.

Si vous obtenez plus d'erreurs à l'avenir, par exemple parce que vous avez à nouveau déplacé un fichier, que de recommencer à nouveau, en vous assurant que tout est sélectionné.

J'espère que cela t'aides.

94
crashoverride777

Il s'agit d'un bogue dans XCode. Les avertissements de fichiers manquants disparaissent dès que vous avez validé votre arborescence de projet.

13
n13

J'avais un dossier .git escroc dans un dossier parent qui n'allait à rien.

vérifiez sous le menu "Contrôle source" que toutes vos "Copies de travail" se connectent réellement à un vrai dossier de contrôle source

[~ # ~] aucune [~ # ~] de ces 'solutions' a fonctionné pour moi, sauf ceci suppression du dossier .git escroc

4
Roy Lovejoy

Suppression de DerivedData et de git add. depuis le terminal, même sans commit, a résolu ce problème pour moi.

3
nemissm

Affichez simplement tous les fichiers cachés, puis supprimez le dossier git Ouvrez Terminal et exécutez cette commande pour afficher tous les fichiers cachés "par défaut, écrivez com.Apple.Finder AppleShowAllFiles YES killall Finder"

2
Dai

Suivez ces étapes.

  1. Ouvrez svn ou arbre source.
  2. Ces fichiers arriveront là-bas.
  3. Supprimez ces fichiers de l'arborescence source ou svn.
  4. Venons-en maintenant au projet xcode.
  5. Maintenant, validez le code une fois. Tout l'avertissement
1
umair farid

Je pense que j'ai résolu le problème maintenant en supprimant toutes les instances de mon dossier DerivedData et en suivant les instructions de crashoverride777. J'ai également dû changer mon option DerivedData de relative à Custom qui peut être trouvée dans Xcode> Préférences> onglet Emplacements.

1
Krivvenz

J'ai résolu ce problème en supprimant le répertoire. Git dans "yourProject"/Pods. Et il est possible de supprimer le répertoire. Git dans le répertoire principal de "yourProject".

1
A.Kant

j'ai supprimé l'ancien objet modèle de mon répertoire de projet et le problème a été résolu.

0
Sajid Israr