Levo help · For your kind of Mac
For iOS and Mac developers: DerivedData, simulators, device support
Xcode is the biggest single reason a developer’s Mac fills up. Almost all of it comes back on its own, so most of it is safe to clear. Levo knows where it lives and checks that Xcode isn’t using it first.
What Levo looks for
- Xcode build data. One folder in DerivedData per project, plus the shared module and symbol caches, SwiftUI previews and the documentation cache. Xcode rebuilds it on your next build, which then takes longer.
- Device support files. Debug symbols Xcode copied from each iPhone, iPad, Apple Watch or Apple TV you’ve plugged in. They’re copies of what’s on the device, and Xcode copies them again the next time you connect it.
- Simulators. Simulated devices you no longer use, and the downloaded system images behind them. Levo removes simulators with Xcode’s own
simctlcommand. - Package caches. Swift package checkouts and builds, the CocoaPods cache and specs, Carthage builds.
- Old Xcode versions and installers. Listed so you can see them, never ticked unless you tick them.
- Archives and iPhone or iPad backups. Also list-only. An archive is the only copy of a build you shipped, and a backup may be the only copy of a phone.
When Levo leaves it alone
Build data that Xcode is working with is locked. Levo checks for Xcode, xcodebuild and the build services running, and for a simulator that’s booted. A locked row shows why and unlocks when the work stops. Build data for a project you haven’t touched in a while, or whose project folder is gone, is what gets ticked first.
See Locked items for how that works.
A good routine
- Let your agent do the first analysis. It reads the folder sizes and ages and gives each row a reason.
- Look at the Xcode build data and Simulators and emulators groups first. They’re usually the biggest.
- Choose Careful to tick only what comes back on its own. Choose Aggressive when you need space now and can live with a slower first build or a re-download. Cleanup levels explains each one.
- Clean up, then build once to warm things up again.
What comes back
Everything in DerivedData, the caches and the simulator caches is made again from your source. Simulator devices lose their data when removed, so an app’s test data inside a simulator goes with it. Device support files return when you connect the device.