Swift-.gitignore-Vorlage erklärt
Erklärt, warum Swift.gitignore xcuserdata, App-Packaging-Dateien, .build von Swift Package Manager, Carthage-Builds und fastlane-Artefakte ignoriert, und nennt Entscheidungskriterien für CocoaPods und Package.resolved.
Swift.gitignore richtet sich an Projekte, die mit Xcode iOS- und macOS-Apps erstellen oder mit Swift Package Manager Pakete entwickeln. Behandelt werden benutzerspezifischer Zustand und Distributionsdateien von Xcode, Build-Ergebnisse der Abhängigkeitsverwaltungen (SwiftPM, Carthage, CocoaPods) und fastlane-Berichte.
Die Vorlage enthält viele auskommentierte optionale Regeln. Punkte, bei denen der Commit von der Teamrichtlinie abhängt, etwa Pods/, Packages/, Package.resolved oder *.xcworkspace, werden standardmäßig nicht ignoriert; die Entscheidung liegt bei Ihnen.
Regeln im Einzelnen
| Muster | Was ignoriert wird und warum |
|---|---|
xcuserdata/ | Benutzerspezifischer Xcode-ZustandEinstellungen, die sich je Entwickler unterscheiden – Schemaauswahl, Haltepunkte, Fensteranordnung –, werden in xcuserdata innerhalb von .xcodeproj und .xcworkspace gespeichert. Werden sie geteilt, überschreiben alle ständig die Einstellungen der anderen. |
*.hmap | Header-MapsDateien für die Header-Suche, die Xcode während des Builds erzeugt. |
*.ipa*.dSYM.zip*.dSYM | App-PackagingApp-Archive für die Distribution und Symboldateien für die Absturzanalyse. Sie entstehen bei jedem Build neu und sind groß. dSYM-Dateien bewahrt man auf, indem man sie zu einem Absturzberichtsdienst hochlädt. |
timeline.xctimelineplayground.xcworkspace | PlaygroundZeitleisten und interner Workspace, die Swift Playground bei der Ausführung erzeugt. |
.build/ | Swift Package ManagerOrdner, in den swift build ausgecheckte Abhängigkeiten und Kompilierergebnisse legt. Er lässt sich jederzeit neu erzeugen. |
Carthage/Build/ | CarthageVon Carthage gebaute Frameworks. Die Quell-Checkouts (Carthage/Checkouts) stehen nur als Kommentar da und sind optional. |
fastlane/report.xmlfastlane/Preview.htmlfastlane/screenshots/**/*.pngfastlane/test_output | fastlaneAusführungsberichte und Screenshots von fastlane. Wie die Kommentare der Vorlage empfehlen, erzeugt man Screenshots bei Bedarf neu. |
Hinweise für die Praxis
- Standardmäßig ignoriert die Vorlage
Pods/von CocoaPods nicht. Ein Commit ermöglicht Builds ohnepod install, vergrößert aber das Repository. In beiden Fällen wirdPodfile.lockcommittet. - Bei Apps ist es üblich,
Package.resolvedzu committen, damit alle mit denselben Abhängigkeitsversionen bauen. - Da unter macOS gearbeitet wird, wählen Sie zusätzlich die macOS-Vorlage (oder die Xcode-Vorlage), um
.DS_Storezu blockieren.
Originalvorlage
# 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
Vorlagenquelle: github/gitignore/Swift.gitignore @356fd7b (2026-09-11) · CC0-1.0