Template .gitignore do Swift explicado
Explica por que o Swift.gitignore ignora xcuserdata, arquivos de empacotamento de apps, o .build do Swift Package Manager, os builds do Carthage e os artefatos do fastlane, e os critérios para CocoaPods e Package.resolved.
O Swift.gitignore se destina a projetos que criam apps de iOS e macOS com o Xcode ou desenvolvem pacotes com o Swift Package Manager. Trata do estado por usuário e dos arquivos de distribuição do Xcode, dos resultados de build das ferramentas de dependências (SwiftPM, Carthage, CocoaPods) e dos relatórios do fastlane.
O template tem muitas regras opcionais comentadas. Itens cujo commit depende da política da equipe, como Pods/, Packages/, Package.resolved e *.xcworkspace, não são ignorados por padrão e a decisão fica com a equipe.
Explicação regra por regra
| Padrão | O que ignora e por quê |
|---|---|
xcuserdata/ | Estado do Xcode por usuárioConfigurações que diferem entre desenvolvedores, como o scheme escolhido, os breakpoints e a disposição das janelas, são salvas em xcuserdata dentro de .xcodeproj e .xcworkspace. Se forem compartilhadas, cada um sobrescreve as configurações dos outros o tempo todo. |
*.hmap | Mapas de headersSão arquivos para busca de headers que o Xcode cria durante o build. |
*.ipa*.dSYM.zip*.dSYM | Empacotamento de appsSão os arquivos de app para distribuição e os arquivos de símbolos para análise de falhas. São criados de novo a cada build e ocupam muito espaço. Os dSYM são enviados e guardados no serviço de relatórios de falhas. |
timeline.xctimelineplayground.xcworkspace | PlaygroundSão a timeline e o workspace interno que o Swift Playground cria ao executar. |
.build/ | Swift Package ManagerÉ a pasta onde o swift build coloca as dependências baixadas e os resultados de compilação. É recriada a qualquer momento. |
Carthage/Build/ | CarthageSão os frameworks compilados pelo Carthage. O checkout do código-fonte (Carthage/Checkouts) aparece só como comentário, para ser escolhido. |
fastlane/report.xmlfastlane/Preview.htmlfastlane/screenshots/**/*.pngfastlane/test_output | fastlaneSão os relatórios de execução e as capturas de tela do fastlane. Como dizem os comentários do template, recomenda-se gerar as capturas de novo quando necessário. |
Cuidados na prática
- Por padrão, o template não ignora o
Pods/do CocoaPods. Se for commitado, o build funciona sempod install, mas o repositório cresce. Em qualquer caso, commite oPodfile.lock. - Em um app, o comum é commitar o
Package.resolvedpara que todos compilem com as mesmas versões de dependências. - Como o trabalho é feito no macOS, selecione também o template macOS (ou o do Xcode) para bloquear o
.DS_Store.
Template original
# Xcode## gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore## User settingsxcuserdata/## Obj-C/Swift specific*.hmap## App packaging*.ipa*.dSYM.zip*.dSYM## Playgroundstimeline.xctimelineplayground.xcworkspace# Swift Package Manager## Add this line if you want to avoid checking in source code from Swift Package Manager dependencies.# Packages/# Package.pins# Package.resolved# *.xcodeproj## Xcode automatically generates this directory with a .xcworkspacedata file and xcuserdata# hence it is not needed unless you have added a package configuration file to your project# .swiftpm.build/# CocoaPods## We recommend against adding the Pods directory to your .gitignore. However# you should judge for yourself, the pros and cons are mentioned at:# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control## Pods/## Add this line if you want to avoid checking in source code from the Xcode workspace# *.xcworkspace# Carthage## Add this line if you want to avoid checking in source code from Carthage dependencies.# Carthage/CheckoutsCarthage/Build/# fastlane## It is recommended to not store the screenshots in the git repo.# Instead, use fastlane to re-generate the screenshots whenever they are needed.# For more information about the recommended setup visit:# https://docs.fastlane.tools/best-practices/source-control/#source-controlfastlane/report.xmlfastlane/Preview.htmlfastlane/screenshots/**/*.pngfastlane/test_output
Origem dos templates: github/gitignore/Swift.gitignore @356fd7b (2026-09-11) · CC0-1.0