Avertissements de fichiers manquants apparaissant après la mise à niveau vers Xcode 4

166

J'ai récemment mis à niveau vers Xcode 4 (ce qui est une excellente mise à niveau) mais maintenant je reçois des avertissements que je n'avais pas avant. J'ai parcouru les forums et autres messages SO mais je n'ai pas trouvé comment résoudre ce problème.

Les avertissements que je reçois sont des avertissements au niveau du projet pour un fichier manquant. Les fichiers affichés ont été supprimés de la vue du navigateur de projet (en choisissant également de supprimer du système de fichiers). Cependant, il semble toujours apparaître comme lié au projet, même si le fichier n'apparaît plus dans le navigateur de projet.

J'ai regardé autour de moi et je n'ai pas trouvé comment dire à Xcode que ces fichiers avaient disparu, arrêtez de me donner des avertissements. Voici une capture d'écran que j'obtiens dans Xcode4, mais jamais dans Xcode 3.

Avertissement de fichier manquant Xcode 4

Scott
la source
Si j'étais vous, j'importerais toujours vos fichiers dans votre projet au lieu de simplement garder un lien vers eux sur votre disque. Cela vous évite vraiment des maux de tête si vous déplacez des fichiers plus tard.
sudo rm -rf

Réponses:

297

Ces solutions sont bien trop difficiles. Le problème est que vous avez supprimé le projet du système de fichiers mais SVN pense toujours qu'ils sont là. Détacher le projet de SVN fonctionnera, de même pour supprimer les dossiers .svn MAIS cela va détruire votre référentiel!

Il est beaucoup plus facile d'ouvrir la console, de parcourir votre dossier ("cd / pathToYourFolder") et de taper la commande suivante:

svn delete nameOfMissingFile

Si le nom de votre fichier manquant comprend le caractère @ (par exemple: illustration spécifique à la rétine), assurez-vous que le nom du fichier se termine par le symbole @:

svn delete [email protected]@

Pour les référentiels GIT:

git rm nameOfMissingFile

Sulthan
la source
20
J'ai eu le même problème et je l'ai résolu via Terminal en utilisant:svn rm --force nameOfMissingFile
ReachWest
1
C'est une meilleure réponse que celle marquée comme correcte. La suppression de dossiers SVN d'un projet sous contrôle SVN peut être tout un monde de douleur. Il est préférable d'utiliser SVN pour résoudre le problème. J'ai suivi cette réponse pour résoudre mon propre problème, mais j'ai eu le luxe de Cornerstone. Mais sinon cool. Merci :)
jowie
1
Cela ne semble pas fonctionner pour moi. Je rajouterais le fichier, puis le supprimerais, mais le même avertissement apparaît toujours dans la construction. J'ai même essayé de rajouter les fichiers au projet, puis de les supprimer. Toujours le même problème.
Yenyi
10
Cela a fonctionné pour moi, mais j'ai d'abord dû créer un fichier factice avant de pouvoir supprimer si vous utilisez svn. Vous devez donc toucher nameOfMissingFile puis svn supprimer nameOfMissingFile --force
Maciej Swic
9
J'ai également dû quitter et tuer xcode pour que le problème disparaisse.
Twilite
55

Dans XCode 4.2. + (Éventuellement dans 4+), vous pouvez éviter le travail manuel et la ligne de commande:

  1. Sélectionnez le projet Navigateur de projet (Commande - 1)
  2. Choisissez le menu Fichier - Contrôle de la source - Valider
  3. Dans le volet gauche, au-dessus, vous avez trois icônes, sélectionnez celle du milieu - Vue fichier
  4. Vous verrez la liste de tous les fichiers manquants
  5. Sélectionnez-les tous et cliquez avec le bouton droit de la souris - Annuler les modifications. Cela restaurera tous les fichiers supprimés du serveur SVN et les placera dans votre dossier SVN local
  6. Faites glisser et déposez ces fichiers dans le projet XCode (choisissez Sort-Date Modified dans Finder pour les trouver facilement)
  7. Supprimez correctement ces fichiers via XCode (sélectionnez les fichiers et choisissez Supprimer avec le bouton droit de la souris)
  8. Engagez le projet

Et c'est tout :)

Tous ces mauvais avertissements ont disparu!

De plus pour Xcode 6+: Après avoir sélectionné la vue du fichier 'icône du milieu' - vous pouvez cliquer sur la case à cocher à gauche et cela les marquera comme supprimés pour SVN lors de votre prochaine validation!

Alex
la source
1
Seulement nécessaire jusqu'à l'étape 5. Je n'avais pas réellement les fichiers dans SVN.
Darren Reely le
J'avais refactorisé un projet, qui affectait un autre projet cos d'un code partagé, et XCode se plaignait de fichiers manquants, liés à SVN. Il m'a fallu un certain temps pour comprendre que c'était un problème SVN, après avoir parcouru manuellement le xml source du projet et ne rien trouver.
danfordham
50

Dans Xcode5 et Xcode6, les étapes ci - dessous ont fonctionné pour moi

Xcode-> Preferences-> Source Control->uncheck Enable Source Control

puis

Xcode-> Preferences-> Source Control->check Enable Source Control

Shamsudheen TK
la source
Sur Xcode 8.3.2, cela a fonctionné pendant environ dix minutes, puis tous les avertissements sont revenus :(
Bob
27

Cela a quelque chose à voir avec les dossiers cachés .svn dans votre projet.

J'ai résolu ce problème en détachant le projet de svn.

une. Ouvrez le terminal et tapez les commandes suivantes:

defaults write com.apple.finder AppleShowAllFiles TRUE


killall Finder

Cela vous permettra d'afficher les dossiers .svn dans votre projet

b. Supprimez tous les dossiers .svn de vos dossiers / sous-dossiers de projet

c. Réactivez les fichiers cachés:

defaults write com.apple.finder AppleShowAllFiles FALSE

killall Finder

ré. Maintenant, votre projet est détaché de svn et vous ne rencontrez plus de problèmes de build.

e. Ajoutez à nouveau votre projet à svn ou autre.

Je suis moi-même un débutant et c'était ma façon de traiter ce problème, donc je ne suis pas sûr que ce soit la meilleure façon de procéder. Quoi qu'il en soit, le problème a été résolu.

Robert Neagu
la source
3
Ce n'est pas une bonne idée de jouer avec les dossiers et fichiers cachés SVN, vous pourriez vous retrouver dans un désordre enchevêtré de SVN. Il est préférable d'utiliser la commande svn delete pour ranger les fichiers manquants.
jowie
C'est le chemin que j'ai fini par emprunter. Oui, cela supprime toutes les informations SVN enregistrées, mais c'était en fait quelque chose que quelqu'un d'autre avait mis dans un projet particulier que je ne voulais pas conserver. Je voulais repartir à zéro et je ne me souciais pas de maintenir le versionnage particulier.
Scott
Je viens de "tuer tout Finder" en le relançant. Le problème a disparu maintenant. Merci
JHHoang
9

Cela a fonctionné pour moi:

File-> Source Control->Hide Working Copy Status

puis

File-> Source Control->Show Working Copy Status

Tyson
la source
6

Je l'ai résolu de la manière suivante:

  1. Vérifiez le chemin d'accès au fichier manquant.
  2. Créez les fichiers manquants aux emplacements appropriés dans le répertoire de votre projet
  3. Ajoutez-les à votre projet en utilisant "Ajouter des fichiers au" projet "" et créez uniquement des références (ne copiez pas les fichiers)
  4. Les avertissements devraient disparaître à ce stade.
  5. À partir de Xcode, supprimez les fichiers en vous assurant de cliquer sur «Supprimer» au lieu de l'option par défaut «Supprimer la référence uniquement»
  6. Vous avez terminé.
askorique
la source
4

J'ai eu ce bug et je n'ai trouvé aucun moyen de le résoudre autre que de créer un fichier vide sur cette position, puis de le supprimer. Cela s'est produit avec des fichiers que j'avais supprimés du projet et le nettoyage, la construction, la suppression manuelle du répertoire de données dérivées ne fonctionnaient pas non plus. Je pense que c'est un bogue et que cela peut être assez douloureux si cela se produit avec plus de quelques fichiers.

Jano
la source
Triste, espérait qu'il y avait un moyen plus simple de contourner ce problème. J'ai environ 20 fichiers, donc créer puis supprimer va être assez pénible.
Scott
4

J'ai également eu ce problème, et comme user151215 l'a décrit, c'est dû aux dossiers .svn.

J'avais un ancien dossier .svn, pas dans le projet lui-même mais dans le dossier parent des projets.

le dossier .svn incriminé contiendra un fichier d'entrées contenant vos fichiers manquants. Vous pouvez donc utiliser Teminal et rechercher une chaîne de nom de fichier manquante, par exemple grep -lir BagController.m yourRootDevDir / *

plus simple que d'activer les fichiers cachés dans Finder, utilisez simplement le terminal. cd dans le répertoire approprié et mv .svn ~ / .Trash

J'espère que cela t'aides!

Nick H247
la source
4

Accédez au répertoire approprié et exécutez:

svn revert fileName
Shaun McCarthy
la source
3

J'ai utilisé la méthode suivante pour résoudre ce problème:

Lancez le terminal et accédez au répertoire du projet. (ex: cd /Users/Mauro/Src/Pippero-1.2/)

Entrez ensuite la commande suivante:

find . -name .svn -exec rm -rf { } \;

la commande recherchera récursivement les fichiers (et le dossier) appelés .svn et les supprimera

Mauro Delrio
la source
cela n'a pas fonctionné pour moi, mais aller dans chaque répertoire et supprimer les dossiers individuels .svn l'a fait. tellement gros à toi, mon homme!
gonzobrains
2

J'utilise svn et parviens à résoudre ce problème en

svn delete pathToMissingFile

qui va supprimer la copie svn locale du fichier manquant ainsi que la copie dans le référentiel distant.

ou

svn revert pathToMissingFile

ce qui va annuler les modifications sur le fichier manquant, ce qui signifie remettre le fichier manquant là où il était.

Jibeex
la source
1

Tout ce qui précède n'a pas permis de résoudre le même type de problème que moi. En faisant quelques recherches, j'ai compris que le problème que j'avais était lié aux conflits SVN.

J'ai découvert qu'il y avait des conflits en utilisant la ligne de commande:

svn status

Ensuite, tous les fichiers en conflit devaient être résolus

svn resolved filename1 filename2 ...

Une fois les conflits résolus, les avertissements ont disparu de Xcode

gfrigon
la source
1
  1. Engagez et appliquez vos changements.
  2. Redémarrez Xcode.
inquiétant
la source
1

C'est très simple,

Xcode -> Preferences -> Source Control -> uncheck Enable Source Control

et n'oubliez pas de faire cmd+shift+k

Kavin Kumar Arumugam
la source
0

Appuyez sur Cmd + 7 après la génération et sélectionnez la dernière action de génération. Cela ressemble-t-il un peu au bon vieux Xcode? :) entrez la description de l'image ici

Knuku
la source
Oui, cela ressemble à l'ancien XCode, mais cela ne résout pas le problème avec le nouveau XCode en disant que j'ai des fichiers manquants. J'aime la vue, mais cela semble masquer simplement le problème avec XCode.
Scott
0

Dans mon cas

  1. J'ouvre simplement SvnX.
  2. Tous les fichiers manquants sont marqués en rouge. Sélectionnez-les et supprimez-les.
  3. Ensuite, tous les avertissements Xcode ont disparu.
Apoc
la source
0

La réponse d'Alex a résolu mon problème de fichiers manquants.

J'ai eu un autre problème (bien qu'il ne soit pas lié à des fichiers manquants, je pense que ce serait le meilleur sujet)

  1. J'avais besoin de copier un ensemble d'images dans mon projet.
  2. J'ai simplement créé un groupe (bien que je sache que le groupe ne correspond pas au dossier physique) et ai fait glisser les images dans le groupe (option "Copier vers .." sélectionnée).
  3. Le statut SVN les a tous montrés dans "A".
  4. Maintenant, lorsque je suis entré dans le système de fichiers réel, j'ai trouvé que toutes les images étaient copiées dans le dossier racine de mon projet. Comme cela ne semblait pas bien, j'ai créé un dossier physique dans le dossier images de mon projet et copié toutes les images ajoutées.
  5. SVN a ensuite montré tous les fichiers en rouge.
  6. J'ai supprimé les références de tous les fichiers rouges.
  7. Avec l'option "Ajouter un fichier", j'ai ensuite ajouté les images du dossier nouvellement créé.
  8. Maintenant, SVN ne parvient pas à afficher l'état des fichiers comme "A", et je ne peux pas les archiver.
  9. J'ai essayé de nombreuses étapes comme les mettre à la poubelle en les ajoutant à nouveau à partir d'un dossier différent, etc., mais il n'y a pas eu de chance.

J'ai corrigé cela en allant directement dans le référentiel, en créant un nouveau répertoire sous images pour que le dossier physique soit maintenant dans le serveur SVN

J'ai ensuite pris une mise à jour de la source et obtenu le répertoire nouvellement créé dans ma copie de travail (bien qu'il ne soit pas ajouté au projet).

J'ai ensuite copié les images dans ce répertoire et les ai ajoutées au projet en utilisant l'option "Ajouter un fichier", ce qui m'a ramené le statut "A" et j'ai pu archiver les fichiers.

Je voulais juste partager ça ... parce que ça m'a pris beaucoup de temps.

-anoop

anoop4real
la source
Dans ce cas, allez dans Terminal et à la racine de votre projet. Créez le dossier avec "svn mkdir name_of_the_folder". Faites glisser et déposez les fichiers avec le Finder du nom_du_dossier vers votre projet (ou dossier lui-même pour ajouter tous les fichiers). Le problème est lorsque vous créez un dossier sans dossier «svn mkdir» n'est pas ajouté au SVN.
Alex
0

Ne supprimez pas le fichier directement dans votre dossier .xcode. Supprimer les fichiers du navigateur de projet xcode. (Faites un clic droit sur ce fichier et choisissez déplacer vers la corbeille).

Maintenant, pour résoudre ce problème, ajoutez les mêmes fichiers au même emplacement. Et supprimez du navigateur de projet.

Gowtham R
la source
0

Je n'avais rien à faire. J'ai validé mon code et l'ai poussé vers le haut. Désactivé XCODE. Je l'ai baissé à nouveau et tout a fonctionné.

VBaarathi
la source
0

Aperçu:

Dans mon cas, il y avait un projet xcode appelé Sampledans le chemin du dossier suivant /folder1/folder2.

Il y avait un .gitfichier à l'intérieur /folder1/folder2/Sample/qui est attendu.

Cause première:

Il y avait un autre .gitfichier dans le répertoire parent ( /folder1) qui causait le problème. Les dossiers ont peut-être été supprimés en laissant le .gitfichier

Solution

rm -rf /folder1/.git

Indice

Si le déplacement de votre projet vers un nouvel emplacement résout le problème où il n'y avait pas de .gitfichier dans les répertoires parents en haut de la hiérarchie, c'est un indice que la solution ci-dessus pourrait fonctionner.

utilisateur1046037
la source