github/gitignore · Swift.gitignore
شرح قالب .gitignore لـ Swift
يشرح سبب تجاهل Swift.gitignore لـ xcuserdata وملفات تحزيم التطبيقات و.build في Swift Package Manager وبناء Carthage ومخرجات fastlane، ومعايير الحكم في CocoaPods وPackage.resolved.
يستهدف Swift.gitignore المشاريع التي تبني تطبيقات iOS وmacOS في Xcode أو تطوّر حزمًا عبر Swift Package Manager. يتناول الحالة الخاصة بكل مستخدم في Xcode وملفات النشر، ونتائج بناء أدوات إدارة الاعتماديات (SwiftPM وCarthage وCocoaPods)، وتقارير fastlane.
يضم القالب قواعد اختيارية كثيرة معلّقة (في تعليقات). البنود التي يختلف قرار إيداعها باختلاف سياسة الفريق، مثل Pods/ وPackages/ وPackage.resolved و*.xcworkspace، لا تُتجاهَل افتراضيًا ويُترك القرار لك.
شرح القواعد
| النمط | ما الذي يتجاهله ولماذا |
|---|---|
xcuserdata/ | حالة Xcode الخاصة بكل مستخدمالإعدادات التي تختلف من مطور لآخر، مثل اختيار المخطط (scheme) ونقاط التوقف وترتيب النوافذ، تُحفظ في xcuserdata داخل .xcodeproj و.xcworkspace. مشاركتها تجعل كل مطور يستبدل إعدادات الآخر باستمرار. |
*.hmap | خرائط الترويساتملفات للبحث عن الترويسات ينشئها Xcode أثناء البناء. |
*.ipa*.dSYM.zip*.dSYM | تحزيم التطبيقأرشيفات التطبيق المعدّة للنشر وملفات الرموز لتحليل الانهيارات. تُنشأ من جديد مع كل بناء وحجمها كبير. تُرفع ملفات dSYM إلى خدمة تقارير الانهيار وتُحفظ هناك. |
timeline.xctimelineplayground.xcworkspace | Playgroundالخط الزمني ومساحة العمل الداخلية التي ينشئها Swift Playground أثناء التشغيل. |
.build/ | Swift Package Managerالمجلد الذي يضع فيه swift build نسخ الاعتماديات المسحوبة ونتائج الترجمة. يُعاد إنشاؤه في أي وقت. |
Carthage/Build/ | Carthageالأطر (frameworks) التي بناها Carthage. أما نسخ المصدر المسحوبة (Carthage/Checkouts) فتُركت في تعليق ليكون تجاهلها اختياريًا. |
fastlane/report.xmlfastlane/Preview.htmlfastlane/screenshots/**/*.pngfastlane/test_output | fastlaneتقارير تشغيل fastlane ولقطات الشاشة. وكما تذكر تعليقات القالب، يُستحسن إعادة إنشاء اللقطات عند الحاجة. |
ملاحظات عملية
- الإعداد الافتراضي في القالب ألا يُتجاهَل
Pods/الخاص بـ CocoaPods. إيداعه يتيح البناء دونpod installلكنه يضخّم المستودع. وفي كلتا الحالتين أودِعPodfile.lock. - في التطبيقات، الشائع إيداع
Package.resolvedحتى يبني الجميع بإصدارات الاعتماديات نفسها. - بما أن العمل يجري على macOS، اختر معه قالب macOS (أو قالب Xcode) لحجب
.DS_Store.
القالب الأصلي
Swift.gitignore
# 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