253 votes

Comment vider les caches et nettoyer toutes les cibles Xcode 4 et suivants

Jonathan le suggère ici : Xcode inclut les fichiers .xib qui ont été supprimés ! que le fait de nettoyer toutes les cibles et de vider les caches résoudra le problème de Xcode incluant les fichiers .xib supprimés, mais je ne trouve pas de moyen de vider le cache dans Xcode 4.

Comment faire cela dans Xcode 4 ?

1 votes

Voici ma [solution shell script][1], qui supprime les données dérivées, à la fois pour xCode 5 et 6. [1] : stackoverflow.com/a/27977848/1231948

538voto

matt Points 60113

Command-Option-Shift-K pour nettoyer le dossier de construction. Encore mieux, quittez Xcode et nettoyez ~/Bibliothèque/Developer/Xcode/DerivedData manuellement. Supprimer tous son contenu parce qu'il y a un bug où Xcode va exécuter une ancienne version de votre projet qui est là quelque part. (Xcode 4.2 vous montrera le dossier Derived Data : choisissez Window > Organizer et passez à l'onglet Projects. Cliquez sur la flèche droite à droite du nom du dossier Derived Data).

Dans le simulateur, choisissez Simulateur iOS > Réinitialiser le contenu et les paramètres.

Enfin, pour être complet, vous pouvez supprimer le contenu du fichier /var/dossiers ; une partie de la mise en cache se fait là aussi.

AVERTISSEMENT : Suppression /var/dossiers peut causer des problèmes, et vous devrez peut-être réparer ou réinstaller votre système d'exploitation après l'avoir fait.

Je viens d'apprendre que si vous avez peur de vous battre avec /var/folders/ vous pouvez utiliser la commande suivante dans le Terminal pour supprimer de manière plus ciblée :

rm -rf "$(getconf DARWIN_USER_CACHE_DIR)/org.llvm.clang/ModuleCache"

EDIT : Pour certains problèmes liés à Swift, j'ai trouvé utile de supprimer ~/Bibliothèque/Caches/com.apple.dt.Xcode . Vous perdez beaucoup lorsque vous faites cela, comme vos copies de rechange des ensembles de documents de documentation téléchargés, mais cela peut en valoir la peine.

6 votes

Sympa, le nettoyage du chemin : Library/Developer/Xcode/DerivedData + réinitialisation du contenu et du paramétrage du simulateur fonctionne !

10 votes

Le chemin semble être dans mon répertoire personnel (notez le tilde) : ~/Library/Developer/Xcode/DerivedData Peut-être que cela était évident pour les autres, mais au cas où quelqu'un d'autre aurait le même problème...

38 votes

Hehe, étant un übern00b j'ai supprimé /var/db où j'ai trouvé quelque chose qui venait de Xcode/mon projet. Cela m'a coûté cinq heures de journalisation saccagée dans le système de fichiers, de réparation et de réinstallation de Lion, etc. Soyez avertis ! :-)

72voto

sram Points 494

Command-Option-Shift-K devrait le faire. Vous pouvez également aller dans le menu produit, appuyer sur la touche option, l'option "Nettoyer" devient "Nettoyer le dossier de construction ..." et sélectionner cette option.

0 votes

Non, c'est dommage. J'ai juste changé et renommé un fichier xib et nettoyé l'application comme vous l'avez dit mais elle se charge toujours sans erreur.

2 votes

Wow, je n'avais jamais entendu parler de cette astuce de la touche Alt pour les menus de Mac OS X !!! Cela définit vraiment le sens de "Alt "ernate.

0 votes

Bonjour @sram, le Command-Option-Shift-K ne fonctionne pas sur le nouveau xCode (12.5) Vous avez autre chose ?

23voto

Sam Points 3762

En plus de faire ce qui suit, vous pouvez rencontrer ce problème si les fichiers Storyboard de votre application sont localisés. D'abord, faites chacune de ces choses :

  • Construction propre
  • Simulateur de réinitialisation
  • Redémarrer Xcode
  • Supprimez votre DerivedData dans le dossier ~/Bibliothèque/Developer/Xcode/DerivedData
  • Redémarrer l'ordinateur

Ce qui a finalement fonctionné pour moi a été de re-générer les fichiers de localisation du storyboard et de supprimer la localisation anglaise (qui n'était pas nécessaire car le Locale de base est l'anglais). Pour recharger vos chaînes de Storyboard, voir cette réponse sur StackOverflow .

J'avais remarqué que les parties non textuelles de mon Storyboard étaient mises à jour, mais pas le texte localisé. Si vous avez une localisation dans votre application, je vous recommande de vérifier que vos localisations sont mises à jour (même si elles sont .strings ).

2 votes

Suppression de la contenu (pas le dossier entier) de /var/folders l'a fait pour moi ! Si vous cherchez le dossier /var/folders... Choisissez Go to Folder dans le menu Go du Finder, et entrez /var/ comme emplacement du dossier.

0 votes

+1 pour l'instruction /var/folders... le nettoyage et la suppression de DerivedData ont fonctionné partiellement mais celui-là a fait l'affaire.

1 votes

1. Nettoyer la construction 2. Réinitialiser le simulateur 3. Redémarrer Xcode Cela a résolu mon problème.

18voto

mert Points 621

J'ai trouvé un autre moyen en plus de command+option+shift+K. Dans XCode 4.2, il y a un organisateur qui peut être ouvert à partir de l'icône en haut à droite. Vous pouvez nettoyer toutes les archives et les options de projet enregistrées à partir de là. Cela a aidé ma situation (je voyais de vieux fichiers supprimés dans le mainBundle).

3 votes

Oui, c'est un moyen plus facile que de nettoyer manuellement ~/Bibliothèque/Developer/Xcode/DerivedData.

10voto

thehatisonfire Points 51

Je me suis arraché les cheveux de la tête car je pensais avoir le même problème. En construisant l'application, je n'ai pas obtenu le même résultat sur mon iPhone que sur le simulateur.

Le problème était que j'avais en quelque sorte créé une version localisée du fichier MainStoryboard.storyboard. Ainsi, lorsque j'ai lancé l'application sur mon téléphone, elle affichait la version danoise... et le simulateur affichait la version anglaise.

Oui, je suis nouveau ! :)

2 votes

J'ai eu des problèmes similaires. J'ai fait command-option-shift-K en vain. J'ai supprimé ...DerivedData, sans résultat. Il s'est avéré que la modification du XIB de niveau supérieur ne change que la version anglaise, et j'ai testé avec la version néerlandaise du XIB. Sigh...

1 votes

Sachez également qu'il existe des moyens de localiser votre application en créant des fichiers texte distincts pour chaque langue. Dans ce cas, la modification du fichier .xib ne sert à rien.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X