Freeing up space
Clear build folders, pods and Gradle caches, find old simulators, NDKs and Flutter versions, and clean up automatically after a build.
Several customer variants of the same project quickly pile up double-digit gigabytes of intermediate results. On top of that come old simulators, Android SDKs and Flutter versions. The Build Station measures first, shows you what takes up how much space, and only deletes what you select.
Cleaning up a project
In the Build tab, Aufräumen (Clean up) opens the Zwischenergebnisse leeren (clear intermediate results) dialog. It shows the actual size per target and, at the bottom, the total that will be freed.
| Target | What’s gone afterwards and how it comes back |
|---|---|
build/ |
results of all previous builds, come back with the next build. Only costs build time. |
.dart_tool/ |
Dart intermediate state, pub get regenerates it |
ios/Pods/ |
CocoaPods dependencies, pod install downloads them again |
android/.gradle/ |
the project’s Gradle intermediate state, gets refilled |
Only build/ is preselected. It’s usually the biggest item and the only one that costs nothing but time on the next build.
Where possible, flutter clean runs instead of blind deletion. It also cleans up the platform-specific intermediate folders. An existing build/web is kept, because in web projects it’s often checked in or deployed. When clearing the pods, the Station also removes ios/Podfile.lock.
Through the queue
Deletion goes through the Warteschlange (queue), not immediately. An rm -rf build in the middle of a running build would tear it apart. If something is currently running for the project, the button is called Zur Warteschlange (add to queue) instead of Leeren (clear), and the cleanup starts as soon as the running operation is done.
The “Aufräumen” section
Aufräumen in the sidebar bundles everything about making space. Nothing is preselected in the lists: you tick yourself where to delete.
Project folders
The Station measures every project folder. Projects that share a folder only count once. The list is sorted by what would be freed.
- At the top under Leeren: (clear) you choose what gets cleared, i.e.
build/,.dart_tool/,ios/Pods/orandroid/.gradle/. - In the list you choose where: individual folders or Alle wählen (select all).
- Wird frei: (will be freed) shows the total.
Deletion happens after confirmation, through the queue. The artifacts in the collection folder aren’t affected.
Xcode, Android and Flutter
Here the Station looks for leftovers outside the projects and measures them. With many simulators, this can take a moment. What can be deleted safely is marked as empfohlen (recommended). Empfohlene wählen (select recommended) ticks exactly those items.
| Item | recommended if |
|---|---|
| DerivedData, Xcode cache, simulator caches | always |
| iOS, watchOS and tvOS DeviceSupport | not the newest version |
| simulator runtimes | not the newest per platform |
| orphaned simulators | always |
| Xcode archives (per year), CocoaPods cache | never, only on request |
| NDKs | neither the newest nor used via ndkVersion |
| build tools | not among the two newest |
| SDK platforms (API levels) | older than the two newest and not a project’s compileSdk |
| system images | not used by any emulator |
| emulators | their system image is missing |
| Gradle versions (distribution, caches, daemon logs) | neither the newest nor in a project’s wrapper |
| Flutter versions under fvm | not used by any project via .fvmrc |
| Gradle build cache, pub cache | never, only on request |
Anything a project still uses is never recommended. Deletion only happens within the known locations: ~/Library/Developer, ~/Library/Caches, Android SDK, ~/.gradle, ~/.android/avd, fvm and ~/.pub-cache. The Station removes simulator runtimes and orphaned simulators via xcrun simctl.
Deleting is permanent. Whatever is needed, Xcode, Gradle or fvm will download again next time. As long as something is running in the queue, deleting here is disabled: pulling an NDK out from under a running build makes it fail.
Neu suchen (search again) measures once more, Auswahl aufheben (clear selection) removes all ticks.
Build Station artifacts and logs
Artifacts in the collection folder and build logs stay put until you delete them. Here you set what should stay:
| Setting | Default |
|---|---|
| Artefakte behalten (Tage) (keep artifacts, days) | 180 |
| Behalten pro Preset (keep per preset) | 10 |
| Logs behalten (Tage) (keep logs, days) | 90 |
These values only take effect when you clean up. Vorschau der Löschkandidaten (preview deletion candidates) lists what would go under these rules, with the reason. Only … Einträge löschen (delete … entries) actually deletes.
The entries in the history are kept. Afterwards they point to files that no longer exist.
Automatically after the build
The Aufräumen section has the Nach erfolgreichem Build automatisch aufräumen (clean up automatically after a successful build) switch, with targets you can choose freely. The default is build/. It’s off until you switch it on.
Even when it’s on, the Station only cleans up if
- the build was successful and artifacts were detected,
- every artifact was copied to the collection folder; otherwise it would only be in
build/and gone afterwards, - no other run is waiting for the same folder. Otherwise only the last one cleans up.
The cleanup run appears as “Automatisch aufräumen” (automatic cleanup) in the queue and history and refers to the build. The price: the next build starts from scratch and takes longer.
When the disk is full
If a build fails because the disk is full, the Station recognizes this in the log and offers Zwischenergebnisse leeren … (clear intermediate results) in the error strip. See When a build fails.