github/gitignore · Swift.gitignore

Разбор шаблона .gitignore для Swift

Почему Swift.gitignore игнорирует xcuserdata, файлы упаковки приложений, .build из Swift Package Manager, сборки Carthage и артефакты fastlane, и как решать вопрос с CocoaPods и Package.resolved.

Открыть в генераторе Открыть вместе с macOS, Xcode, Objective-C

Swift.gitignore рассчитан на проекты, где приложения для iOS и macOS создаются в Xcode или пакеты разрабатываются с Swift Package Manager. Он охватывает пользовательское состояние Xcode и файлы для распространения, результаты сборки менеджеров зависимостей (SwiftPM, Carthage, CocoaPods) и отчёты fastlane.

В шаблоне много закомментированных необязательных правил. Такие пункты, как Pods/, Packages/, Package.resolved и *.xcworkspace, где решение о коммите зависит от политики команды, по умолчанию не игнорируются — выбор оставлен вам.

Разбор правил

ШаблонЧто и почему игнорируется
xcuserdata/Пользовательское состояние XcodeНастройки, у каждого разработчика свои — выбор схемы, точки останова, расположение окон, — хранятся в xcuserdata внутри .xcodeproj и .xcworkspace. Если ими делиться, все будут постоянно перезаписывать настройки друг друга.
*.hmapКарты заголовковФайлы для поиска заголовков, которые Xcode создаёт во время сборки.
*.ipa*.dSYM.zip*.dSYMУпаковка приложенияАрхивы приложения для распространения и файлы символов для анализа сбоев. Они создаются заново при каждой сборке и занимают много места. dSYM загружают на сервис отчётов о сбоях и хранят там.
timeline.xctimelineplayground.xcworkspacePlaygroundВременная шкала и внутреннее рабочее пространство, которые Swift Playground создаёт при выполнении.
.build/Swift Package ManagerПапка, куда swift build помещает извлечённые зависимости и результаты компиляции. Её всегда можно пересоздать.
Carthage/Build/CarthageФреймворки, собранные Carthage. Извлечённые исходники (Carthage/Checkouts) оставлены только в комментарии — на ваш выбор.
fastlane/report.xmlfastlane/Preview.htmlfastlane/screenshots/**/*.pngfastlane/test_outputfastlaneОтчёты о запусках fastlane и скриншоты. Как сказано в комментарии шаблона, скриншоты рекомендуется при необходимости генерировать заново.

На что обратить внимание на практике

Исходный шаблон

Swift.gitignoreСтрок правил: 13
# 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

Источник шаблонов: github/gitignore/Swift.gitignore @356fd7b (2026-09-11) · CC0-1.0

Шаблоны, используемые вместе

Разборы других шаблонов