Comment puis-je supprimer en toute sécurité dans mon répertoire ~ / Library / Developer / Xcode / DerivedData?

90

Je voudrais supprimer les anciennes données (remplaçables?) Et le contenu de DerivedData semble un candidat probable. Comme son nom est DerivedData , je suppose que ce sont des informations qui, si elles étaient manquantes, seraient générées lors d'une phase de construction et, si elles sont présentes, sont utilisées pendant cette même phase. Il semble donc logique que je puisse supprimer toutes les anciennes données de projet sans crainte et si jamais je devais construire cet ancien projet, la première fois prendrait plus de temps que la normale, car il fallait recréer toutes ces données dérivées.

Est-ce que je me trompe ici?

soob
la source
8
Sachez très bien que, comme l'explique Joshua, ce dossier sanglant contient "des données dSYM pour un débogage ultérieur. ... ne pas supprimer si vous voulez pouvoir déboguer les versions déployées de votre application"
Fattie
Peut-être devrais-je utiliser toutes les astuces de balisage SO en plus de l'accentuation pour appeler ce point dans ma réponse. :-D Block-quoted-star-slash-commented-code-bold-italic-bulleted-list, etc.
Joshua Nozzi
17
@JoeBlow en fait, comme l'explique Joshua, c'est le répertoire Archives qui contient "les données dSYM pour un débogage ultérieur". Le répertoire Archives est un frère du répertoire DerivedData , ce qui signifie qu'il est au même niveau, en dessous ~/Library/Developer/Xcode, que DerivedData , donc "ce dossier sanglant" (DerivedData) ne contient PAS les données dSYM et son contenu peut être supprimé en toute sécurité.
mluisbrown
4
Chaque fois que je publie une nouvelle version, je copie le .xcarchive de Xcode dans mon dépôt git et le garde sous le contrôle de version - c'est un bon moyen de toujours pouvoir obtenir d'anciens .dSYM sans dépendre des répertoires Xcode d'une machine particulière.
Bill

Réponses:

123

Le dossier Données dérivées contient toutes les informations de construction intermédiaires, les cibles générées par le débogage et la version, ainsi que l'index de votre projet. Il est utile de supprimer les données dérivées lorsque vous avez des problèmes d'index étranges (l'achèvement du code ne fonctionne pas correctement, la réindexation constante ou même juste un projet lent). La suppression de l'intégralité du dossier réduit ces informations pour tous les projets que Xcode 4 connaît.

Le dossier Archives (un frère de Derived Data) contient le formulaire archivé de vos cibles. Autrement dit, une version de version ainsi que des données dSYM pour un débogage ultérieur. Vous ne devez pas le supprimer si vous souhaitez pouvoir déboguer les versions déployées de votre application.

Vous pouvez détruire les données dérivées pour un projet donné en ouvrant la fenêtre Organiseur et en sélectionnant l'onglet Projets. Sélectionnez le projet souhaité et cliquez sur le bouton Supprimer en regard du chemin des données dérivées. Il s'agit davantage d'une «frappe chirurgicale» pour les projets à problèmes.

Joshua Nozzi
la source
1
Sûr. Accédez à la ligne de commande et tapez "man rm" - devenez fou. :-)
Joshua Nozzi
9
Soupir. Je sais rm. Je voulais trouver un moyen de résoudre le dossier lié au projet, par exemple ~/Library/Developer/Xcode/DerivedData/MyProject-hghjhjhkjh/. Le moyen le plus simple que j'ai trouvé est de définir le dossier DerivedData par rapport au dossier du projet, via les préférences XCode.
asgoth
4
Juste une note rapide: dans XCode 6.x , projectssont dans leur propre fenêtre (pas l'organisateur).
Olie
1
J'aime votre jargon militaire XD
Josh
1
FWIW de nombreux nouveaux outils de distribution (AppCenter, HockeyApp, Crashlytics, etc.) vous demandent de remettre les fichiers dSYM afin que vous n'ayez pas à les stocker vous-même.
Honey
38

Le contenu des «données dérivées» est généré lors de la construction. Vous pouvez le supprimer en toute sécurité. Suivez les étapes ci-dessous pour supprimer les «données dérivées»:

  1. Sélectionnez Xcode -> Préférences.

Étape 1

  1. Cela ouvrira une fenêtre pop-up. Sélectionnez l'onglet " Emplacements ". Dans le sous-onglet Emplacements, vous pouvez voir « Données dérivées ». Cliquez sur l'icône de flèche à côté du chemin.

Étape 2

  1. Cela ouvrira le dossier contenant «Données dérivées». Cliquez avec le bouton droit de la souris et supprimez le dossier.

Étape 3

Jayprakash Dubey
la source
Ainsi, lorsque mon application est dans le simulateur mais qu'elle ne s'exécute pas à partir du code et si je supprime puis réexécute à partir du code, cela causera-t-il un problème?
Manthan
@Manthan: Non, cela ne créera aucun problème.
Jayprakash Dubey
30

Oui, ces données sont générées pendant la construction et vous pouvez les supprimer si vous le souhaitez, ce n'est pas un problème.

Il sera recréé lorsque vous reconstruirez.

amrit_neo
la source