Kann ich den Inhalt des Xcode Derived-Datenordners sicher löschen?

293

Ich habe nur noch wenig Speicherplatz und habe über ein Dienstprogramm eines Drittanbieters überprüft, ob das Verzeichnis ~ / Library / Developer / Xcode / DerivedData unter anderem etwa 22 GB Speicherplatz belegt.

Ich habe nach stackoverflow gesucht und diesen Beitrag gefunden

Wie kann ich sicher in meinem Verzeichnis ~ / Library / Developer / Xcode / DerivedData löschen?

Die akzeptierte Antwort auf diese Frage legt nahe, dass ich keine Ordner aus diesem Verzeichnis berühren / entfernen sollte. Also habe ich getan

  • Es wurde ein vorhandener Build-Projektordner für eine App gefunden, die ich im Appstore verfügbar habe
  • Löschte den Ordner aus dem abgeleiteten Verzeichnis
  • startete XCode 5
  • Öffnen Sie das Projekt
  • Sauber bauen
  • Getestet und kompiliert auf einem Simulator
  • Neu archiviert
  • Alles hat funktioniert. Nichts war kaputt.

Sofern ich in dieser Antwort nicht etwas verpasst habe, möchte ich sicherstellen, dass erfahrene Entwickler beim Erstellen, Testen und Kompilieren dieser Projekte nicht verletzt werden, wenn ich alle Ordner aus DerivedData lösche.

Sam B.
quelle
Die akzeptierte Antwort auf die Frage, auf die verwiesen wird, lautet stackoverflow.com/a/7284632/8047, die nichts darüber aussagt, nicht aus DerivedData zu löschen ... obwohl Archive wichtig sind, um später Inhalte zu debuggen, aber das ist ein anderes Verzeichnis.
Dan Rosenstark

Antworten:

372

Ja, Sie können alle Dateien direkt aus dem DerivedDataUnterordner löschen (Not DerivedData Folder).

Dies hat keine Auswirkungen auf Ihre Projektarbeit. Der Inhalt des DerivedDataOrdners wird während der Erstellungszeit generiert und kann bei Bedarf gelöscht werden. Es ist kein Problem.

Der Inhalt von DerivedDatawird neu erstellt, wenn Sie Ihre Projekte erneut erstellen.

Xcode8 + Update

Aus dem Xcode8, der die Projektoption von der Registerkarte "Fenster" entfernt hat, können Sie weiterhin den ersten Weg verwenden:

Xcode -> Preferences -> location -> click on small arrow button as i explain in my first answer.

Xcode7.3-Update Um die DeriveData eines bestimmten Projekts zu entfernen, müssen Sie nur die folgenden Schritte ausführen:

Gehe zu Window -> Project:

Geben Sie hier die Bildbeschreibung ein

Sie finden die Liste der Projekte und können entweder in den DerivedDataOrdner gehen oder einzelne Projekte direkt löschenDerivedData

Geben Sie hier die Bildbeschreibung ein


Ich arbeite nicht an Xcode5, aber in 4.6.3 finden Sie einen DerivedDataOrdner wie im folgenden Bild:

Geben Sie hier die Bildbeschreibung ein

Nach dem Klicken auf Einstellungen ..

Geben Sie hier die Bildbeschreibung ein

Du bekommst dieses Fenster

Geben Sie hier die Bildbeschreibung ein

Nitin Gohel
quelle
1
Vielen Dank Alter. Entspricht der Inhalt von "Abgeleiteten Daten" im Grunde den zwischengespeicherten und unerwünschten Dateien von Xcode? Deshalb ist es in Ordnung, es zu löschen, um Platz zu schaffen?
Supertecnoboff
1
@gone Worüber sprichst du? Die erstellten Dateien müssen irgendwohin.
Droppy
2
Nun, bei CMake und anderen make-Systemen befinden sich die generierten Dateien usw. auch bei Builds außerhalb der Quelle noch im Projektpfad und werden gelöscht, wenn ich die Ordnerstruktur lösche oder bereinigt, wenn ich eine Bereinigung durchführe. Da ich ungefähr jede Woche ca. 100 Aufgaben markiere, erhalte ich eine große Anzahl von Dateien, an die ich denken muss, um die Daten jedes Projekts einzeln manuell zu löschen und über die XCode-Benutzeroberfläche zu verwenden. Ich stehe also zu meinem vorherigen Kommentar, obwohl ich jetzt Williams Alias ​​in meiner .bashrc implementiert habe.
gegangen
XCode 8 ändert die Dinge wieder (es war schon immer ein Schmerz im Arsch). Jetzt müssen wir manuell in den Ordner unter gehen /Users/YourUsername/Library/Developer/Xcode/DerivedDataund alle löschen. Da Sie für XCode 7 bearbeitet haben, dachte ich, Sie möchten es vielleicht noch einmal für XCode 8 bearbeiten.
sweta.me
1
Sie können meine vollständige Antwort überprüfen. Es gibt mehrere Antworten in derselben alten, die immer noch arbeiten, um die Präferenz zu erreichen, und zwar auf der Registerkarte "Standort". :)
Nitin Gohel
124

Ich lösche derivativeData oft genug, dass ich einen Alias ​​dafür habe. Es kann Build-Probleme beheben. Ich habe Folgendes in /Users/Myusername/.bash_profile

alias purgeallbuilds='rm -rf ~/Library/Developer/Xcode/DerivedData/*'

Dann gebe ich im Terminal purgeallbuilds ein und alle Unterordner von DerivedData werden gelöscht.

William Jockusch
quelle
24
Sie können den DerivedData-Ordner selbst löschen. Es wird nur neu erstellt.
Nick Lockwood
1
Das Erstellen schlägt in Xcode 8 sofort fehl, wenn ich diesen Ordner gelöscht habe. Nachdem ich es wieder hinzugefügt hatte, funktionierten die Dinge wieder.
Tim
Dies ist ein sehr nützlicher Tipp. Normalerweise stoße ich jedes halbe Jahr auf Platzmangel und es fällt mir schwer, mich daran zu erinnern, welche Ordner gelöscht werden sollten. Der Alias ​​ist auf jeden Fall praktisch.
Oliver Zhang
35

XCODE 10 UPDATE

Auf der Registerkarte:

  1. Klicken Sie auf Xcode
  2. Einstellungen
  3. Standorte -> Abgeleitete Daten

Sie können auf alle abgeleiteten Daten zugreifen und diese löschen, indem Sie sie löschen.

Umit Kaya
quelle
Der Abschnitt Abgeleitete Daten definiert nur den Pfad der abgeleiteten Daten. Ich sehe nirgendwo etwas, um sie anzusehen und zu löschen. Warum nicht einfach über die Kommandozeile?
AlxVallejo
2
@AlxVallejo Am Ende der Pfadadresse sehen Sie ein Symbol, das Sie zum Ordner führt. Tippen Sie darauf und löschen Sie den Ordner. Er wird neu erstellt.
Umit Kaya
34

XCODE 7.2 UPDATE

(Funktioniert auch für 7.1.1)

  1. Klicken Sie auf Fenster und dann auf Projekte und löschen Sie die abgeleiteten Daten .

So was:

Geben Sie hier die Bildbeschreibung ein

Und dann hier löschen:

Geben Sie hier die Bildbeschreibung ein


Ich hoffe, das hilft!

Lukesivi
quelle
2
Auf diese Weise können Sie es einzeln manuell löschen. In anderen Posts werden jedoch die Inhalte des DerivedData-Ordners sofort gelöscht
XIII.
23
 $ du -h -d=1 ~/Library/Developer/Xcode/*

zeigt, dass mindestens zwei Ordner riesig sind:

 1.5G   /Users/horace/Library/Developer/Xcode/DerivedData
 9.4G   /Users/horace/Library/Developer/Xcode/iOS DeviceSupport

Fühlen Sie sich frei, Dinge in den Ordnern zu entfernen:

 rm -rf ~/Library/Developer/Xcode/DerivedData/*

und einige in:

 open ~/Library/Developer/Xcode/iOS\ DeviceSupport/
Oh ho
quelle
2
Heiliger Mist ... Löschen der Dateien aus älteren Versionen von iOS im Geräte-Support-Ordner freigegeben 28 GB ...
Kareem
17

Ich habe gerade ein Github-Repo mit einem kleinen Skript erstellt, das eine RAM-Disk erstellt. Wenn Sie auf Ihren DerivedData-Ordner verweisen /Volumes/ramdisk, werden nach dem Auswerfen der Festplatte alle Dateien gelöscht .

Es beschleunigt das Kompilieren und beseitigt dieses Problem

xc-launch repo

Am besten mit DTerm starten

Diego Freniche
quelle
11

XCode 8: So löschen Sie abgeleitete Daten für Ihr aktuelles Projekt:

Klicken Sie auf das Menü Produkt

Halten Sie die Wahltaste gedrückt

Klicken Sie auf Build Build Folder

Steve Yost
quelle
Wenn ich die Optionstaste gedrückt halte, ist die Option "Build erstellen" abgeblendet. : /
AlxVallejo
4

XCODE 10 UPDATE

Klicken Sie in der Statusleiste auf Xcode und wählen Sie dann Einstellungen

Wählen Sie im PopUp-Fenster Standorte vor dem letzten Segment

Sie können den Ordner Abgeleitete Daten mit dem kleinen rechten Symbol erreichen

Geben Sie hier die Bildbeschreibung ein

Ali Ihsan URAL
quelle
2

~ / Library / Developer / Xcode / DerivedData

Ansal Antony
quelle
Standardmäßig ja; Ich benutze, ~/tmp/DerivedDatadamit ich leichter zu den erstellten Dateien / Bundles komme.
Droppy
1

Ja, sicher zu löschen, mein Skript sucht und zerstört jede gefundene Instanz und kann leicht in ein lokales Verzeichnis geändert werden

#!/usr/bin/env bash
set -o errexit
set -o nounset
set -o pipefail
IFS=$'\n\t'

for drive in Swap Media OSX_10.11.6/$HOME
do
   pushd /Volumes/${drive}  &> /dev/null
   gfind . -depth -name 'DerivedData'|xargs -I '{}' /bin/rm -fR '{}'
   popd &> /dev/null
done
μολὼν.λαβέ
quelle
0

Ich habe diesen Fehler erhalten, weil Int in einer Datei int war. So dumm.

Rajeswari Ratala
quelle
-1

Ich würde sagen, es ist sicher - ich lösche oft den Inhalt des Ordners für viele Arten von iOS-Projekten auf diese Weise . Und ich hatte keine Probleme mit Builds oder dem Senden an den App Store. Die Prozedur löscht abgeleitete Daten und bereinigt die zwischengespeicherten Assets eines Projekts für Xcode 5 und 6.

Wenn Sie einfach rm -rf im Verzeichnis Derived Data aufrufen, bleiben manchmal ein oder zwei verbleibende Dateien übrig, aber mein Skript wird wiederholt, bis alle Dateien gelöscht sind.

Sheamus
quelle
Pfui. Tippfehler. Ich meinte "liefern"
klares Licht
Ah, ich verlinke auf das Skript, das ich in einer Antwort auf eine andere Frage bereitgestellt habe. Auf diese Weise muss ich das Skript nur an einer Stelle bearbeiten, wenn ich es jemals aktualisieren möchte. Kannst du dem Link folgen?
Sheamus
Ich sehe den Code jetzt. Ich habe den Link vorher nicht gesehen (wenn er da war), danke.
klares Licht
-1

Der Inhalt von 'Abgeleitete Daten' wird während der Erstellungszeit generiert. Sie können es sicher löschen. Führen Sie die folgenden Schritte aus, um "Abgeleitete Daten" zu löschen:

  1. Wählen Sie Xcode -> Einstellungen.

Schritt 1

  1. Dies öffnet das Popup-Fenster. Wählen Sie die Registerkarte " Standorte ". Auf der Unterregisterkarte "Standorte" sehen Sie " Abgeleitete Daten ". Klicken Sie auf das Pfeilsymbol neben dem Pfad.

Schritt 2

  1. Dies öffnet einen Ordner mit 'Abgeleiteten Daten'. Klicken Sie mit der rechten Maustaste und löschen Sie den Ordner.

Schritt 3

Jayprakash Dubey
quelle