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
epod 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.