Modèle .gitignore Swift expliqué
Explique pourquoi Swift.gitignore ignore xcuserdata, les fichiers de packaging d'application, le .build de Swift Package Manager, les builds Carthage et les artefacts fastlane, et donne des critères de décision pour CocoaPods et Package.resolved.
Swift.gitignore cible les projets qui créent des applications iOS·macOS avec Xcode ou développent des paquets avec Swift Package Manager. Il traite l'état par utilisateur et les fichiers de distribution de Xcode, les résultats de build des gestionnaires de dépendances (SwiftPM, Carthage, CocoaPods) et les rapports fastlane.
Le modèle contient de nombreuses règles optionnelles en commentaire. Les éléments dont le commit dépend de la politique de l'équipe, comme Pods/, Packages/, Package.resolved ou *.xcworkspace, ne sont pas ignorés par défaut : la décision vous revient.
Explication règle par règle
| Motif | Ce qui est ignoré et pourquoi |
|---|---|
xcuserdata/ | État Xcode par utilisateurLes réglages propres à chaque développeur — choix du schéma, points d'arrêt, disposition des fenêtres — sont enregistrés dans xcuserdata à l'intérieur de .xcodeproj et .xcworkspace. Les partager conduit chacun à écraser sans cesse les réglages des autres. |
*.hmap | Cartes d'en-têtesFichiers de recherche d'en-têtes créés par Xcode pendant le build. |
*.ipa*.dSYM.zip*.dSYM | Packaging d'applicationArchives d'application de distribution et fichiers de symboles pour l'analyse des crashs. Ils sont recréés à chaque build et volumineux. Les dSYM se conservent en les envoyant à un service de rapports de crash. |
timeline.xctimelineplayground.xcworkspace | PlaygroundChronologies et espace de travail interne créés par Swift Playground à l'exécution. |
.build/ | Swift Package ManagerDossier où swift build place les checkouts de dépendances et les résultats de compilation. Il peut être recréé à tout moment. |
Carthage/Build/ | CarthageFrameworks compilés par Carthage. Les checkouts de sources (Carthage/Checkouts) ne figurent qu'en commentaire, pour laisser le choix. |
fastlane/report.xmlfastlane/Preview.htmlfastlane/screenshots/**/*.pngfastlane/test_output | fastlaneRapports d'exécution et captures d'écran de fastlane. Comme l'indiquent les commentaires du modèle, il est recommandé de régénérer les captures d'écran quand on en a besoin. |
Points d'attention en pratique
- Par défaut, le modèle n'ignore pas le
Pods/de CocoaPods. Le commiter permet de compiler sanspod install, mais alourdit le dépôt. Dans les deux cas, commitezPodfile.lock. - Pour une application, il est courant de commiter
Package.resolvedafin que tout le monde compile avec les mêmes versions de dépendances. - Comme on travaille sous macOS, sélectionnez aussi le modèle macOS (ou Xcode) pour bloquer
.DS_Store.
Modèle d'origine
# 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
Source des modèles : github/gitignore/Swift.gitignore @356fd7b (2026-09-11) · CC0-1.0