«No such module»: o pesadelo familiar de todo desenvolvedor Swift
\n\nVocê adiciona um framework via SPM, CocoaPods ou manualmente, vê ele no Project Navigator, tudo parece perfeito — mas o Xcode insiste em escrever: No such module 'Alamofire' (ou qualquer outro módulo). Familiar? Se sim — você não está sozinho. A pergunta original no Stack Overflow reuniu dezenas de milhares de visualizações, e os comentários se transformaram em uma verdadeira coletânea de dor dos desenvolvedores iOS.
Neste artigo, vamos analisar 10 causas reais pelas quais o erro No such module ocorre e mostrar como corrigi-las. No final, você encontrará uma checklist que economizará horas de nervos.
Por que o Xcode não vê o módulo? Top 10 causas
\n\n1. Derived Data — o principal culpado
\nO Xcode armazena em cache informações sobre o projeto na pasta Derived Data. Se o cache estiver desatualizado ou corrompido, o compilador «esquece» os módulos conectados. Isso é a primeira coisa a verificar.
\n\nComo corrigir:
\n- \n
- Feche o Xcode \n
- Abra o terminal e execute:\n
\nrm -rf ~/Library/Developer/Xcode/DerivedData\n - Ou manualmente: Xcode → Preferences → Locations → Derived Data → clicar na seta → excluir a pasta \n
- Reinicie o Xcode e faça
Cmd + B\n
2. Configuração incorreta de Build Phases
\nMesmo que o framework esteja fisicamente no projeto, o Xcode pode não saber que precisa vinculá-lo. Verifique Link Binary With Libraries:
\n- \n
- Selecione o target → Build Phases \n
- Expanda Link Binary With Libraries \n
- Certifique-se de que seu framework está lá \n
- Se não estiver — clique em
+e adicione-o \n
3. Swift Package Manager: branch ou versão errada
\nSPM é uma ferramenta conveniente, mas é sensível a versões. Se você especificou from: "1.0.0" e no repositório a versão é 2.0.0, o Xcode pode não encontrar um módulo compatível.
// Exemplo Package.swift\ndependencies: [\n .package(url: "https://github.com/Alamofire/Alamofire.git", from: "5.6.0")\n]\n\nO que fazer:
\n- \n
- Vá em File → Packages → Update to Latest Package Versions \n
- Se o problema persistir — remova o framework e adicione novamente \n
- Verifique Package Dependencies no projeto — o módulo deve estar verde \n
4. Conflito de arquiteturas (Architectures)
\nFrameworks antigos podem ser compilados apenas para arm64, enquanto seu projeto inclui o simulador (x86_64). Com o surgimento do Apple Silicon, isso se tornou uma causa frequente.
\n\nSolução: Adicione em Build Settings → Excluded Architectures para a compilação Debug:
\n- \n
- Para o simulador:
arm64\n - Para o dispositivo:
$(ARCHS_STANDARD)\n
5. Caminho de busca incorreto (Framework Search Paths)
\nSe você adiciona o framework manualmente, o Xcode precisa saber onde encontrá-lo. Verifique Framework Search Paths:
\n- \n
- Build Settings → Framework Search Paths \n
- Certifique-se de que o caminho leva à pasta com
.frameworkou.xcframework\n - Para SPM geralmente não é necessário especificar nada, mas para frameworks manuais — é obrigatório \n
6. Framework não adicionado a todos os targets
\nO projeto pode ter vários targets (aplicativo principal, widgets, extensões). Se você adicionou o módulo apenas a um, os outros targets não o verão.
\n\nVerificação: Selecione o framework no Project Navigator → inspetor à direita → Target Membership — marque todos os targets necessários.
\n\n7. Problemas com CocoaPods (se estiver usando)
\nCocoaPods é clássico, mas às vezes após pod install o framework não é