web-dev-qa-db-fra.com

Comment vider les caches et nettoyer toutes les cibles Xcode 4 et versions ultérieures

Jonathan suggère ici: Xcode inclut les fichiers .xib supprimés! le fait de nettoyer toutes les cibles et de vider les caches corrigera le problème lié à Xcode, y compris les fichiers .xib supprimés, mais que je ne trouve pas le moyen de vider le cache. dans Xcode 4.

Comment faire cela dans Xcode 4?

226
Tieme

Commande-Option-Maj-K pour nettoyer le dossier de construction. Encore mieux, quittez Xcode et nettoyez ~/Library/Developer/Xcode/DerivedData manuellement. Supprimez tout son contenu car il existe un bogue dans lequel Xcode exécutera une ancienne version de votre projet quelque part. (Xcode 4.2 affiche le dossier Données dérivées: choisissez Fenêtre> Organiseur et passez sur l'onglet Projets. Cliquez sur la flèche droite à la droite du nom du dossier Données dérivées.)

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

Enfin, pour compléter, vous pouvez supprimer le contenu de / var/folder; il y a aussi une certaine mise en cache.

AVERTISSEMENT: la suppression de / var/folder peut entraîner des problèmes et vous devrez peut-être réparer ou réinstaller votre système d'exploitation ultérieurement.

EDIT: Je viens d’apprendre que si vous avez peur de vous débattre avec / var/folder /, 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 ~/Library/Caches/com.Apple.dt.Xcode. Lorsque vous faites cela, vous perdez beaucoup, comme vos copies de secours des ensembles de documents de documentation téléchargés, mais cela peut en valoir la peine.

507
matt

Commande-Option-Maj-K devrait le faire. Sinon, allez dans le menu du produit, appuyez sur la touche option. Désormais, l'option "Nettoyer" deviendra "Nettoyer le dossier de construction ...", sélectionnez cette option.

64
sram

J'ai trouvé un autre moyen en plus de la commande + option + décalage + K. Dans XCode 4.2, un organiseur 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 d'anciens fichiers supprimés dans le groupe principal).

17
mert

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

  • Construction propre
  • Réinitialiser le simulateur
  • Redémarrer Xcode
  • Supprimez votre dossier DerivedData dans ~/Library/Developer/Xcode/DerivedData .
  • Redémarrer l'ordinateur

Avertissement : une étape supplémentaire consiste à supprimer le contenu (pas la totalité dossier) de /var/dossiers . Notez que cela peut causer de sérieux problèmes avec votre installation OSx, et vous pourriez ne plus être en mesure de démarrer sous OSx . Dans ce cas, la seule option consiste à réinstaller OSx à partir de la console de récupération.

Ce qui a finalement fonctionné pour moi a été de générer à nouveau les fichiers de localisation du storyboard et de supprimer la localisation anglaise (ce qui n’était pas nécessaire, car 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 en cours de mise à 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 s'il s'agit de fichiers .strings).

16
Samuel Spencer

J'ai arraché les cheveux de ma tête parce que je pensais avoir le même problème. Lors de la création de l'application, mon iPhone n'a pas obtenu le même résultat 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, la version danoise était affichée ... et le simulateur, la version anglaise.

Oui je suis nouveau! :)

9
thehatisonfire

Pour supprimer toutes les données dérivées et le cache de module dans /var/folders, utilisez ce petit script Ruby script .

derivedDataFolder = Dir.glob(Dir.home + "/Library/Developer/Xcode/DerivedData/*")
moduleCache = Dir.glob("/var/folders/**/com.Apple.DeveloperTools*")
FileUtils.rm_rf derivedDataFolder + moduleCache

Cela vient de résoudre une erreur fatal error: malformed or corrupted AST file: 'Unable to load module "/var/folders/ pour moi.

6
orkoden

J'ai eu quelques problèmes avec le crash de Xcode 5.1 lorsque j'ai ouvert la fenêtre de documentation.

Je ne suis pas sûr de la cause, car je mettais également à jour des jeux de documents pendant que j'ouvrais la fenêtre.

Eh bien, dans Xcode 5, le répertoire des modules réside maintenant dans le dossier de données dérivé, que je n’ai pas supprimé pour des raisons évidentes. J'ai supprimé le contenu de ~/Bibliothèque/Développeur/Xcode/DerivedData/ModuleCache et le ~/Bibliothèque/Préférences/com.Apple.Xcode.plist et tout semble alors à travail, après avoir redémarré Xcode.

5
McUsr

Mon "DerivedData" avec Xcode 10.2 et Mojave était ici:

MacHD/Utilisateurs/[MyUser]/Library/Developer/Xcode

1
Mahdi Moqadasi

Lorsque vous utilisez un "modèle de données", l'inspecteur vous propose des options pour générer des classes. Pour moi, c'était le cas, car il existait déjà une classe avec le nom existant.

Codegen: résolu pour moi.

enter image description here

0
Wayne

Vous devez faire attention au fichier xib. J'ai essayé tout ce qui précède et rien n'a fonctionné pour moi. J'utilisais des boutons UIB personnalisés définis dans xib, et j'ai compris que cela pouvait être lié au fait que j'avais affecté des attributs qui ne changeaient pas par programme. Si vous avez défini des images ou du texte à cet endroit, supprimez-les. Quand je l’ai fait, mes modifications programmatiques ont commencé à prendre effet.

0
Alyoshak

Voici mon solution de script Shell , qui supprime les données dérivées et nettoie les actifs mis en cache d'un projet, pour Xcode 4, 5 et 6.

Parfois, le simple fait d'appeler rm -rf dans le répertoire de données dérivées laisse un fichier en attente, mais mon script est mis en boucle jusqu'à ce que tous les fichiers soient supprimés.

0
Sheamus

J'ai essayé presque tout, mais je ne pouvais rien faire. Ce qui m'a aidé, c’est de désactiver SIP (Protection de l’intégration système). Cela fonctionne. Je ne sais pas ce qui se passe quand et comment, mais les fichiers système se perdent quelque part et causent cela ... bien qu'il puisse y avoir des risques pour le désactiver évidemment

voici comment

1. Mettez votre Mac sous tension et maintenez les touches [commande] + [R] enfoncées pour accéder à la partition de récupération.

2.Dans la partition de récupération, cliquez sur Utilitaires dans la barre de menus, puis sélectionnez Terminal.

3. Entrez la commande suivante dans Terminal et appuyez sur Entrée pour l'exécuter: csrutil disable

4.Une fois la commande exécutée, quittez le terminal et redémarrez le Mac. Lorsque vous vous reconnectez à OS X, SIP est désactivé.

0
Castro Zwelithini