Xcode - frei, um Geräteordner zu löschen?

80

Ich lösche einige Ordner und Dateien, um mehr Speicherplatz auf meinem Laufwerk zu schaffen. Ich weiß das auf dem Weg:

~/Library/Developer/CoreSimulator/Devices/

Es gibt Ordner für jeden Simulator und jede Version. Dieser Ordner hat für mich eine Größe von ca. 11 GB. Ich weiß, dass ich Simulatoren mit alten Versionen löschen kann, die ich nicht mehr verwende. Aber anhand dieser eindeutigen Kennung kann ich nicht wissen, welche die richtige ist und welche nicht. Meine Frage lautet also: Kann ich alles löschen? Es ist in Ordnung, wenn ich das nächste Mal keine meiner Apps im Simulator hätte, aber kann ich etwas mehr verlieren? Alte Versionen des Simulators? Oder sonst noch etwas? Vielen Dank

Libor Zapletal
quelle

Antworten:

242

In diesem ~/Library/Developer/CoreSimulator/Devices/Pfad speichert Xcode die meisten Daten, die für Ihre einzelnen Simulatorgeräte benötigt werden.

Der Vorschlag von Beau Nouvelle, heruntergeladene Simulatorversionen zu löschen, würde die Größe dieser Ordner nicht ändern, da die Laufzeiten an anderer Stelle gespeichert werden.

Wenn Sie zum Terminal gehen, können Sie mit dem Simctl- Tool ( im Lieferumfang von Xcode 6+ enthalten) alle tatsächlichen Simulatorgeräte sowie die IDs auflisten, um herauszufinden, welche Ordner gelöscht werden sollen.

Beachten Sie, dass ich in dieser Antwort ständig xcrun simctl verwende . Dies verleiht den Dingen ein wenig Abstraktion, indem xcrun die entsprechende Version von simctl für Ihren aktuell ausgewählten Xcode nachschlagen lässt. Wenn Ihr System nicht so kompliziert ist wie meins, können Sie wahrscheinlich mit dem Löschen des Teils "xcrun" auskommen, und die Befehlszeile sollte immer noch das Simctl-Tool finden.

xcrun simctl list devices

Hier sind einige ausgewählte Ausschnitte der Ausgabe, die ich erhalten habe:

== Geräte ==

- iOS 8.2 -

- iOS 8.4 -

iPhone 6 Plus (23E36868-715A-48C8-ACC3-A735C1C83383) (Herunterfahren)

iPad Air (2928379B-70E3-4C59-B5BA-66187DDD3516) (Herunterfahren)

- iOS 9.1 -

Mein benutzerdefiniertes iPhone 4s (4F27F577-FFD0-42C1-8680-86BBA7394271) (Herunterfahren)

iPad Retina (85717B35-313A-4161-850E-D99D5C8194A6) (Herunterfahren)

- Nicht verfügbar: com.apple.CoreSimulator.SimRuntime.iOS-9-0 -

iPhone 4s (D24C18BC-268C-4F0B-9CD8-8EFFDE6619E3) (Herunterfahren) (nicht verfügbar, Laufzeitprofil nicht gefunden)

Daraus können Sie ersehen, dass ich keine iOS 8.2-Simulatorgeräte habe. Ich habe einige 9.1 und 8.4 Simulatorgeräte. Ich habe ein 9.0-Simulatorgerät erstellt (ein Überbleibsel meiner Arbeit an Xcode 7.0), aber ich habe nicht die 9.0-Simulator-Laufzeit selbst. Das ist also ein guter Kandidat zum Löschen oder eine Erinnerung daran, dass ich den 9.0-Simulator in Xcode herunterladen sollte.

Wenn Sie möchten, können Sie diese IDs verwenden, um den Ordner für das betreffende Gerät zu identifizieren und manuell zu löschen (in diesem Fall würde ich den Ordner "D24C18BC-268C-4F0B-9CD8-8EFFDE6619E3" löschen), aber Sie können auch den Ordner verwenden simctl Tool, um das zu tun.

Verwendung gemäß der Version 7.1.1 von simctl:

xcrun simctl help delete
Usage: simctl delete <device> [... <device n>] | unavailable

So kann ich entweder die einzelnen Geräte löschen:

xcrun simctl delete D24C18BC-268C-4F0B-9CD8-8EFFDE6619E3

oder ich kann alle nicht verfügbaren Massen löschen mit:

xcrun simctl delete unavailable

Sie müssen sich auch nicht nur auf nicht verfügbare Simulatoren beschränken.

Wenn Sie weitere Hilfe mit dem Tool benötigen, erhalten Sie einen recht einfachen Hilfebefehl:

xcrun simctl help

Aaron
quelle
2
Wenn Sie eine Fehlermeldung erhalten xcrun: error: unable to find utility "simctl", sollten Sie in der Lage sein,xcrun /Applications/Xcode.app/Contents/Developer/usr/bin/simctl
rovr138
2
Xcrun soll Ihnen bei der Suche nach Dienstprogrammen helfen, damit Sie deren Pfade nicht selbst kennen müssen. Wenn Sie den Pfad zu simctl bereits kennen, ist das "xcrun" nicht erforderlich. Führen Sie es einfach direkt aus/Applications/Xcode.app/Contents/Developer/usr/bin/simctl
Aaron
Ich habe ~ 10 GB nach dem Ausführen zurückgefordert simctl delete unavailableund Geräte beschnitten, die eine Reihe von iOS-Versionen verwenden. Ich hatte keine Ahnung, dass diese noch da waren. Sieg!
Wardw
Cool, und noch eine Frage, wie können wir wissen, welche verfügbar ist und welche nicht? Ich habe bereits gelöscht diejenigen unavailable oneunter Verwendung xcrun simctl delete unavailable, aber der Ordner ist immer noch zu groß ..
boog
Sie können andere Simulatorgeräte löschen, wenn Sie möchten. Höchstwahrscheinlich benötigen Sie nicht in jeder iOS-Version eine Instanz jedes Geräts. Vielleicht behalten Sie nur ein paar repräsentative Beispiele, wie das kleinste verfügbare iPad und iPhone und das größte verfügbare iPad und iPhone. Ich glaube, Apple hat auch Feedback darüber erhalten, wie viel Speicherplatz diese beanspruchen, da die Versionshinweise für Xcode 11 (derzeit in der Beta-Version) betonen, dass nur wenige Simulatorgeräte automatisch erstellt werden, nicht alle.
Aaron
1

Ich hatte vor einiger Zeit ein ähnliches Problem, xcode nahm 47G auf meinem Laufwerk auf. Ich habe versucht, einige Simulatorgeräte zu löschen, wodurch mein Xcode nicht mehr funktioniert (verrückt). Also habe ich alles, was mit xcode zu tun hat, gelöscht und neu installiert. Es ist nur meine Erfahrung.

Karthik
quelle
1

Manchmal verdoppelt Xcode seine Simulatoren gern.

Normalerweise bestand die Lösung für mich immer darin, sie alle einfach zu löschen. Das Löschen ist harmlos, da Sie sie später jederzeit wieder herunterladen können.

Xcode> Einstellungen> Downloads

Denken Sie daran, dass Sie alte Simulatoren (iOS 8.0-) nicht mehr über Xcode herunterladen können, wenn Sie sie dort haben.

Beau Nouvelle
quelle
0

in Xcode 8:

1) Führen Sie $ sudo du -khd 1im Terminal aus, um die Ordnergröße jedes Ordners anzuzeigen.

2) Führen $ cd library/developer/coresimulator/devicesSie das Programm aus, um die für alle Ihre Xcode-Simulatoren gespeicherten GB anzuzeigen.

3) Sie werden sehen, wo sich eine Tonne Speicher versteckt! Navigieren Sie jetzt einfach zu diesem Speicherort auf Ihrem Macintosh HD und zeigen Sie die Geräte.plist in jedem Geräteordner an.

4) Entscheiden Sie, welche Ordner gelöscht und aufbewahrt werden sollen, indem Sie alle Simulatoren / iOS-Versionen löschen, die Sie in der Vergangenheit ausgeführt haben, aber nicht mehr zum Testen benötigen. In diesen Ordnern sind alte SQLite-Versionen vorhanden, die als alte Sicherungen oder andere Inhalte fungieren können. Beachten Sie dies, bevor Sie alles in diesem Ordner löschen.

Ich habe beim ersten Mal über 50 GB gespart.

Whyoz
quelle