Como liberar espaço em disco no macOS para desenvolvedores Flutter, Android e iOS

Introdução

Se você desenvolve em Flutter, Android ou iOS no macOS, provavelmente já se deparou com o problema de espaço em disco acabando rápido. Entre caches, builds, simuladores e arquivos temporários, o SSD pode ficar lotado em pouco tempo — especialmente se o seu Mac tem pouco armazenamento.

Para ajudar, compartilho um script bash completo que uso no dia a dia para liberar espaço rapidamente e automatizar a limpeza dos principais arquivos e pastas que consomem espaço durante o desenvolvimento mobile. O artigo explica em detalhes como funciona cada comando e como personalizar conforme sua rotina.

O Script Completo


#!/bin/bash

# Cores para log
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
CYAN='\033[0;36m'
NC='\033[0m' # Sem cor

log() {
    echo -e "${CYAN}$1${NC}"
}
warn() {
    echo -e "${YELLOW}$1${NC}"
}
success() {
    echo -e "${GREEN}$1${NC}"
}
error() {
    echo -e "${RED}$1${NC}"
}

# Limpeza geral do ambiente
log "== Limpando DerivedData do Xcode =="
rm -rf ~/Library/Developer/Xcode/DerivedData/*
success "-- DerivedData limpo"

log "== Limpando simuladores antigos do Xcode =="
xcrun simctl delete unavailable
success "-- Simuladores antigos removidos"

log "== Limpando caches do Android Studio =="
rm -rf ~/Library/Caches/Google/AndroidStudio*
success "-- Caches do Android Studio limpos"

log "== Limpando locks do Android AVD =="
rm -rf ~/.android/avd/*.lock
success "-- Locks do AVD removidos"

log "== Limpando caches do Gradle =="
rm -rf ~/.gradle/caches/
success "-- Caches do Gradle limpos"

log "== Limpando caches gerais do sistema =="
rm -rf ~/Library/Caches/*
rm -rf ~/Library/Application\ Support/Code/Cache/*
success "-- Caches gerais limpos"

log "== Limpando Trash =="
rm -rf ~/.Trash/*
success "-- Lixeira esvaziada"

# Limpeza dos projetos Flutter
log "== Iniciando limpeza dos projetos Flutter =="

find /Users/seuusuario/development/ -name "pubspec.yaml" | while read -r i; do
    (
        DIR=$(dirname "${i}")
        warn "---- Limpando ${DIR} ----"

        # Apagando .aab e .apk
        log "    > Apagando arquivos .aab e .apk"
        find "${DIR}" -type f \( -name "*.aab" -o -name "*.apk" \) -exec rm {} \;

        # flutter clean
        log "    > Executando flutter clean"
        (cd "$DIR" && flutter clean >/dev/null 2>&1)

        # pod deintegrate (caso tenha iOS)
        if [ -d "$DIR/ios" ]; then
            log "    > Executando pod deintegrate em ios/"
            (cd "$DIR/ios" && pod deintegrate >/dev/null 2>&1)
        fi

        success "---- Limpeza concluída para ${DIR} ----"
    ) &
done

wait

success "=== Limpeza geral e de projetos Flutter FINALIZADA! ==="
osascript -e 'display notification "Limpeza concluída!" with title "Dev Clean"'
echo -e "${GREEN}DONE!${NC}"

Explicando o Script

  • Cores no log: Melhora a visualização do processo no terminal, separando avisos, erros e sucesso.
  • Limpeza do Xcode: Remove o DerivedData e simuladores antigos, que normalmente ocupam vários GBs após builds e testes.
  • Android Studio e Gradle: Caches do Android Studio e do Gradle podem chegar facilmente a dezenas de GBs. O script remove todo esse conteúdo automaticamente.
  • AVD Locks: Remove arquivos de travamento de emuladores Android, resolvendo até problemas de inicialização dos emuladores.
  • Caches gerais do sistema: Limpa caches do usuário e do VS Code (ou outros editores).
  • Lixeira: Esvazia a lixeira, liberando espaço “invisível”.
  • Limpeza dos projetos Flutter: O script procura todos os projetos Flutter na pasta definida, remove arquivos de build (.aab, .apk), executa flutter clean e pod deintegrate nos projetos iOS.
  • Notificação final: Mostra um alerta no macOS quando termina a limpeza.

Dicas Finais

  • Automatize: Salve o script como limpa_dev.sh, dê permissão de execução (chmod +x limpa_dev.sh) e rode sempre que precisar liberar espaço!
  • Personalize: Ajuste o caminho da pasta de projetos (/Users/seuusuario/development/) conforme o seu diretório de código.
  • Cuidado: Use com atenção — o script apaga arquivos de build e cache, mas não mexe em arquivos de código.
  • SSD pequeno?: Rode regularmente se você tem SSD de 128 ou 256 GB para evitar ficar sem espaço no pior momento.