Plantilla .gitignore de Swift explicada
Explica por qué Swift.gitignore ignora xcuserdata, archivos de empaquetado de apps, el .build de Swift Package Manager, las compilaciones de Carthage y los artefactos de fastlane, y los criterios para CocoaPods y Package.resolved.
Swift.gitignore está dirigida a proyectos que crean apps de iOS y macOS con Xcode o desarrollan paquetes con Swift Package Manager. Trata el estado por usuario y los archivos de distribución de Xcode, los resultados de compilación de las herramientas de dependencias (SwiftPM, Carthage, CocoaPods) y los informes de fastlane.
La plantilla tiene muchas reglas opcionales comentadas. Los elementos cuya confirmación depende de la política del equipo, como Pods/, Packages/, Package.resolved y *.xcworkspace, no se ignoran por defecto y la decisión se deja al equipo.
Explicación regla por regla
| Patrón | Qué ignora y por qué |
|---|---|
xcuserdata/ | Estado de Xcode por usuarioLos ajustes que difieren entre desarrolladores, como el esquema elegido, los puntos de interrupción o la disposición de ventanas, se guardan en xcuserdata dentro de .xcodeproj y .xcworkspace. Si se comparten, cada uno sobrescribe continuamente los ajustes de los demás. |
*.hmap | Mapas de cabecerasSon archivos para buscar cabeceras que Xcode crea durante la compilación. |
*.ipa*.dSYM.zip*.dSYM | Empaquetado de appsSon los archivos de app para distribución y los archivos de símbolos para analizar fallos. Se crean de nuevo en cada compilación y ocupan mucho. Los dSYM se suben y conservan en el servicio de informes de fallos. |
timeline.xctimelineplayground.xcworkspace | PlaygroundSon la línea de tiempo y el espacio de trabajo interno que crea Swift Playground al ejecutarse. |
.build/ | Swift Package ManagerEs la carpeta donde swift build guarda las dependencias descargadas y los resultados de compilación. Se recrea en cualquier momento. |
Carthage/Build/ | CarthageSon los frameworks compilados por Carthage. La descarga del código fuente (Carthage/Checkouts) solo figura como comentario para que se elija. |
fastlane/report.xmlfastlane/Preview.htmlfastlane/screenshots/**/*.pngfastlane/test_output | fastlaneSon los informes de ejecución y las capturas de pantalla de fastlane. Como dicen los comentarios de la plantilla, se recomienda regenerar las capturas cuando hagan falta. |
Precauciones en la práctica
- Por defecto la plantilla no ignora el
Pods/de CocoaPods. Si lo confirmas, se compila sinpod install, pero el repositorio crece. En cualquier caso, confirmaPodfile.lock. - En una app, lo habitual es confirmar
Package.resolvedpara que todos compilen con las mismas versiones de dependencias. - Como se trabaja en macOS, selecciona también la plantilla macOS (o la de Xcode) para bloquear
.DS_Store.
Plantilla 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
Origen de las plantillas: github/gitignore/Swift.gitignore @356fd7b (2026-09-11) · CC0-1.0