Xcode: problème «le fichier xxx.png est absent de la copie de travail» lors de la construction du projet

265

Après avoir supprimé / ajouté des fichiers png au projet, j'ai des messages lors de la construction du projet.

"le fichier ProjectPath \ aaa \ xxx.png est manquant dans la copie de travail."

Tous ces fichiers sont dans le projet et l'application est en cours d'exécution. Cependant, ces messages sont ennuyeux. Regardé le fichier .plist, mais il n'y a aucune mention de ces fichiers. Que dois-je faire pour supprimer ces messages?

Iban
la source

Réponses:

495

L'avertissement disparaît dès que vous validez vos modifications (Xcode 8).

Alexander Vasenin
la source
2
J'ai découvert que je devais juste valider mes modifications sous git après avoir déplacé certains fichiers vers un répertoire différent.
Chris Livdahl
@LearnSwift Clean Cmd + Shift + K, supprimer ~ / Library / Developer / Xcode / DerivedData / *?
Alexander Vasenin
2
@AlexanderVasenin ni
Learn Swift
7
Pour moi, la simple mise en scène des changements était suffisante. Bon à savoir.
charmingToad
13
Comme vous l'avez mentionné, je me suis assuré de valider et de pousser mes dernières modifications. Mais cela ne supprime pas les erreurs. Alors j'ai fait Xcode> Contrôle de source> Ignorer TOUTES les modifications, et cela a nettoyé toutes les erreurs pour moi.
EdwardM
97

Il semble que ce problème puisse avoir différentes causes, mais il est souvent lié au logiciel de contrôle de source.

Dans mon cas, je l'ai résolu en allant dans Git et en ajoutant à nouveau les fichiers. Je veux dire exécuter la commande suivante:

git add .
nbloqs
la source
Après avoir installé Xcode 8 et mis à niveau le code vers swift 3, je me suis retrouvé avec plus de 300 problèmes nécessitant des corrections de syntaxe (projet massif). Au lieu de cela, j'ai restauré à partir d'une sauvegarde et mis à niveau vers swift 2.3 ... tout s'est bien passé, à l'exception d'un tas de ces messages «manquants». Cette commande a fonctionné comme un charme - je suis de retour aux affaires!
Dan Ross
C'est ce qui a fonctionné pour moi. Le problème a commencé lorsque j'ai supprimé ce que j'avais dans Pods en faveur de Carthage
Sebastian Sastre
1
Cela fonctionne aussi pour moi. Il semble que le fichier soit sous contrôle de source et git doit également être mis à jour.
Shardon
après git commit l'avertissement a disparu
carmen_munich
3
Pour les autres: vous devez vous trouver dans le dossier racine de votre projet Xcode avec l'exécution de 'git add'. commande: / MyXcodeProjects / AwesomeApp /
Philip Borges
59

Vous pouvez également désactiver le contrôle des sources en décochant

Xcode -> Préférences -> Contrôle de source -> Activer le contrôle de source

si vous le gérez via la ligne de commande ou toute autre application.

emrekyv
la source
cela l'a fait pour moi, un peu ennuyeux de voir cela dans l'IDE, ils devraient soit bien prendre en charge le contrôle des sources, soit pas du tout
samiq
1
J'ai effectué deux actions: 1) "décocher", 2) "vérifier" pour activer le contrôle de source. Les avertissements ont disparu.
Viktor
58

Dans XCode -> SoureControl:

Update+ l'a Refresh Statusfait pour moi.

coyer
la source
Je pense que cela peut être dû à des images ayant "@" dans le nom de fichier, telles que la convention "@ 2x" et "@ 3x". SVN utilise ce symbole pour la syntaxe de révision (pour l'échapper lorsque vous travaillez avec SVN dans la ligne de commande, vous ajoutez simplement un "@" à la fin car la dernière occurrence est celle qu'il utilise pour essayer de déterminer les informations de révision). Le simple fait de mettre à jour Update a fonctionné pour moi. Lorsque j'ai ajouté de nouvelles images, j'ai dû sélectionner manuellement "ajouter" sur les variantes 2x / 3x dans le volet Inspecteur de fichiers également. Bizarre.
Android3000
1
Ce! tellement important. Le problème survient également si vous renommez un dossier contenant des fichiers. En d'autres termes, xcode nous donne des avertissements car nous n'avons pas encore validé notre code! clap clap clap
Warpzit
4
Cela a fonctionné pour moi. J'ai dû fermer Xcode et rouvrir le projet et exécuter.
jaytrixz
44

Dans mon cas, le fichier manquait dans le contrôle de code source.
Pour corriger, j'ai dû jeter ce fichier (attention à ne jeter que le fichier manquant pas tout votre projet):

  1. Xcode-> Source Control-> commit
  2. Clic droit sur le fichier manquant
  3. Choisissez Ignorer les modifications
Ronen
la source
Cela fonctionne pour moi, j'ai supprimé le dossier DerivedData, et les avertissements étaient pour les fichiers "db.xcindexdb"
tontonCD
1
Tout d'abord, je me suis assuré de valider et de pousser mes dernières modifications. Ensuite, j'ai fait Xcode> Contrôle de source> Ignorer toutes les modifications, et cela a nettoyé toutes les erreurs pour moi.
EdwardM
19

Désactivez le contrôle de code source, nettoyez le dossier de génération ( Alt+Shift+Cmd+K), puis activez à nouveau le contrôle de code source.

Xcode -> Préférences -> Contrôle de source -> Activer le contrôle de source

George
la source
1
bonne réponse ... mais la réponse exacte @emrekyv publiée 3 mois auparavant ... Il obtient le vote
eric
@eric a-t-il suggéré de désactiver le contrôle des sources, j'ai montré comment le faire fonctionner correctement.
George
18

Dans mon cas, Xcode avait en quelque sorte trouvé d'anciens .svnrépertoires qui faisaient référence aux fichiers manquants. J'ai dû monter d' un niveau au-dessus de mon dossier de projet pour trouver ces fichiers .svn. Une fois supprimé, j'ai redémarré Xcode et tout allait bien.

kubi
la source
Oui, cela se produit lorsque vous supprimez quelque chose d'un projet sous contrôle de version alors qu'il est toujours référencé par le contrôle de version (dans mon cas, svn). L'utilisation de "svn update" pour restaurer les fichiers manquants, puis les supprimer correctement en utilisant "svn delete", a fait disparaître le problème pour moi.
ChrisB
12

J'ai eu un problème similaire avec une poignée de fichiers qui avaient depuis longtemps été supprimés de mon projet Xcode alors que j'utilisais encore Xcode 7.

Ma solution était de:

  1. Créez des fichiers avec les noms dont se plaignait Xcode (ils n'ont pas besoin de contenu)
  2. Ajouter les fichiers à mon projet Xcode (dans Xcode, faites un clic droit sur le répertoire principal de mon projet, cliquez sur Ajouter des fichiers à my_project_name et sélectionnez les fichiers qui viennent d'être créés
  3. Sélectionnez les fichiers nouvellement ajoutés et supprimez-les - sélectionnez déplacer vers la corbeille.

Cela m'a débarrassé des avertissements.

Gabrielle Earnshaw
la source
Cela a également fonctionné pour moi. J'ai eu le problème après avoir copié un projet existant pour en faire un dérivé, mais avec des fonctionnalités réduites ⇒ moins de fichiers source.
Stefan
9

Pour ajouter à la réponse d'Alexander Vasenin ...

D'abord, je me suis engagé et j'ai poussé mes changements

Menu principal Xcode> Contrôle de source> Valider

Ensuite, j'ai supprimé toutes les modifications pour me débarrasser des erreurs

Menu principal Xcode> Contrôle de source> Ignorer toutes les modifications

Après cela, les erreurs indiquant "le fichier xxx.png est manquant dans la copie de travail" ont disparu.

EdwardM
la source
Que faire si le projet n'utilise pas le contrôle de version ou un système de contrôle de version non pris en charge par XCode.
Martin
8

Cela se produit lorsque vous supprimez un fichier sur Xcode, mais n'en informe pas le serveur svn.

Accédez à l'outil de ligne de commande et supprimez directement le fichier.

svn delete missingFile.m 

et engagez-le

svn commit -m "Deleting file"

notez que si vous supprimez le dossier .svn, l'avertissement disparaît mais vous perdrez la communication avec le serveur svn.

Kang Byul
la source
5

Je l'ai résolu.

ouvrez simplement votre outil SVN tiers, trouvez les fichiers manquants, Revert; c'est tout.

traximus
la source
5

J'ai eu le même problème et l'ai résolu en ajoutant git. Outil de ligne de commande ouverte

cd "project folder path"
git add .

Plus tard, redémarrez le projet Xcode et ouvrez à nouveau votre projet.

Ugur Atci
la source
Et si vous n'utilisez pas git?
Martin
4

Afficher sur la cible -> phases de construction -> copier les ressources du bundle. et nettoyer la commande du dossier de construction + shift + alt + k

BHASKAR
la source
3
Merci, mais ils ne sont pas dans les phases de construction et le nettoyage du dossier de construction n'aide pas trop.
Iban
4

J'ai dû aller manuellement dans Terminal et supprimer les fichiers avec git rm ProjectPath\aaa\xxx.pngpuis valider. Après cela, tout a bien fonctionné.

yesthisisjoe
la source
3

J'ai obtenu cela pour chaque projet après avoir migré vers XCode 8. Cela l'a résolu:

Avec la touche Option enfoncée, Produit (dans le menu de titre) -> Clean Build Folder.

TomV
la source
2

Dans mon cas, j'avais des données erronées de mes anciens projets dans le simulateur. Résolu en réinitialisant le contenu et les paramètres dans le simulateur:

Simulateur -> Réinitialiser le contenu et les paramètres ...

Canal
la source
1

Pour moi, ce qui suit a fonctionné:

Étant donné que je n'utilise pas et que je n'ai jamais utilisé Git, j'ai créé un nouveau projet (XCode 8, je ne pouvais pas voir le "use Git" habituel ou bien la coche était étiquetée). Puis j'ai carrément supprimé tous les fichiers de ce nouveau projet; est allé à l'ancien projet foiré, a tout copié dans le dossier du projet, est revenu au projet nouvellement créé, a collé les vieux trucs, a ouvert cela - tous les avertissements concernant les fichiers qui n'existaient pas depuis des mois ont disparu. Doigts croisés.

TommyTheCat
la source
1

J'ai eu le même problème et l'ai résolu en faisant simplement glisser les fichiers spécifiés du Finder dans le navigateur de projet (en veillant à ce que "copier les fichiers" soit sélectionné dans la boîte de dialogue) et en validant les fichiers.

user2698617
la source
1

Ces avertissements ne sont pas des avertissements de génération, ils concernent votre référentiel SVN.

Il est vrai que les répertoires affichés n'existent plus, CocoaPods stocke les en-têtes Pods/Headers/{Private,Public}maintenant. Vous devez mettre à jour votre copie de travail pour refléter ces changements.

Mutawe
la source
Je n'utilise pas le contrôle de version à l'intérieur de XCode et j'ai toujours le problème.
Martin
1

Dans mon cas, j'ai glissé et déposé un certain nombre de fichiers sur ma fenêtre de projet Xcode pour les ajouter. Il a fait des copies dans mon répertoire source mais ne les a pas placées là où je voulais qu'elles aillent (il les a mises à la racine de mon répertoire, je les ai voulues dans un sous-répertoire). Sans réfléchir, je les ai juste saisis dans le Finder et les ai déplacés vers le répertoire dans lequel je les voulais. Après être retourné dans la fenêtre du projet, il n'a bien sûr pas pu les trouver, alors je les ai supprimés dans la fenêtre et les ai rajoutés. Après avoir compilé, j'ai commencé à obtenir ces erreurs.

Je pensais, comme certains le mentionnent ci-dessus, que c'était un problème avec git mais quand j'ai lancé "git ls-tree --full-tree -r HEAD", je n'ai pas vu les fichiers du tout ??

Quoi qu'il en soit, pour résoudre le problème, j'ai simplement utilisé la commande de menu "Ajouter un fichier ..." pour ajouter chacun des fichiers à l'emplacement par défaut, effectuer une nouvelle génération, puis les supprimer de la fenêtre du projet (en utilisant le déplacement dans la corbeille) et il s'est débarrassé de toutes les erreurs.

KevinR
la source
1

J'ai eu les avertissements et ne pouvais pas non plus valider les modifications sous XCode (en utilisant svn). Tout ce que j'avais à faire était de redémarrer XCode et le problème a disparu.

Hugh Jeffner
la source
1

Cela fonctionne pour moi: Xcode -> ("option + clic") Produit -> Clean Build Folder ...
Than restart xCode

Mykyta Savchuk
la source
0

Dans mon cas, c'était un problème avec git et un système de fichiers insensible à la casse.

J'avais par inadvertance soumis deux fois le même fichier, en utilisant des chemins de fichier qui ne différaient qu'en cas:

MyProject/Resources/foo.png
MyProject/resources/foo.png

Xcode se plaignait d'un des fichiers manquants.

Corrigé en supprimant les fichiers incriminés et en rajoutant.

cd MyProject
mv Resources/foo.png /tmp
git rm Resources/foo.png
git rm resources/foo.png
git commit
mv /tmp/foo.png Resources
git add Resources/foo.png
git commit
Darren
la source
0

Ceci est définitivement lié au contrôle de source. J'ai renommé et déplacé quelques fichiers plist non validés et j'ai obtenu cette erreur. J'utilise svn. J'ai pu résoudre ce problème Source Control - Commiten supprimant les anciens fichiers référencés.

Hahnemann
la source
J'ai le problème et je n'utilise pas le contrôle de version dont XCode est au courant. Tout contrôle de version effectué en dehors de XCode.
Martin