كيفية تنظيف ذاكرة Swift Package Manager المؤقتة بأمان
فريق AskClean · آخر تحديث 2026-07-31
استخدم swift package clean لنواتج بناء الحزمة الحالية، وreset لإعادة ضبط حالتها المحلية بالكامل، وswift package purge-cache فقط لذاكرة المستودعات العامة. احتفظ بملفي Package.swift وPackage.resolved؛ فهما يحددان الاعتماديات وليسا بيانات مؤقتة يمكن التخلص منها.

لدى SwiftPM عدة طبقات
تخزن حزمة سطر الأوامر checkouts والمنتجات داخل .build، بينما يحتفظ SwiftPM بذاكرة مستودعات مشتركة. قد يخزن Xcode منتجات الحزم داخل DerivedData للمشروع. نظف أضيق طبقة تفسر المشكلة.
اختر الأمر حسب النطاق
يحذف swift package clean نواتج بناء الحزمة الحالية. يعمل reset على نطاق أوسع ويعيد إعداد حالتها المحلية. يؤثر purge-cache في تنزيلات مشتركة بين مشاريع متعددة، لذا قد تحتاج عملية حلّ الاعتماديات التالية إلى الشبكة ووقت أطول.
- احفظ التغييرات وتأكد من وجود Package.swift وPackage.resolved.
- شغل swift package clean من جذر الحزمة ثم أعد البناء.
- استخدم swift package reset فقط إذا بقيت الحالة المحلية تالفة.
- استخدم swift package purge-cache فقط بعد إثبات مشكلة الذاكرة المشتركة.
- تحقق من الاعتماديات والاختبارات بعد التنظيف.
شغل swift package --help؛ تعتمد الأوامر الفرعية المتاحة على إصدار Swift المثبت.
احتفظ بملفات الحل
يسجل Package.resolved إصدارات محددة. قد يؤدي حذفه إلى اختيار إصدارات أخرى مسموحة وتحويل التنظيف إلى تحديث. ملفات Package.swift وSources وTests والإضافات والاعتماديات المحلية هي شيفرة مصدرية وليست ذاكرة مؤقتة.
تعامل مع Xcode بصورة منفصلة
إذا ظهرت المشكلة في Xcode فقط، فجرب File > Packages > Reset Package Caches وResolve Package Versions أو احذف DerivedData الخاص بالمشروع. قس مجلدات .build قبل تنظيف عام. يجد AskClean الفئة، لكن أوامر Swift هي التي تحدد النطاق.
مقارنة القرارات والمخاطر
ميز بين clean وreset وpurge-cache، ونظف نواتج Xcode، واحتفظ بملف Package.resolved.
| القرار | مكان التحقق | حد الأمان |
|---|---|---|
| لدى SwiftPM عدة طبقات | .build / DerivedData / repository cache | تخزن حزمة سطر الأوامر checkouts والمنتجات داخل .build، بينما يحتفظ SwiftPM بذاكرة مستودعات مشتركة. قد يخزن Xcode منتجات الحزم داخل DerivedData للمشروع. نظف أضيق طبقة تفسر المشكلة. |
| اختر الأمر حسب النطاق | swift package clean / reset / purge-cache | يحذف swift package clean نواتج بناء الحزمة الحالية. يعمل reset على نطاق أوسع ويعيد إعداد حالتها المحلية. يؤثر purge-cache في تنزيلات مشتركة بين مشاريع متعددة، لذا قد تحتاج عملية حلّ الاعتماديات التالية إلى الشبكة ووقت أطول. |
| احتفظ بملفات الحل | Package.swift / Package.resolved | يسجل Package.resolved إصدارات محددة. قد يؤدي حذفه إلى اختيار إصدارات أخرى مسموحة وتحويل التنظيف إلى تحديث. ملفات Package.swift وSources وTests والإضافات والاعتماديات المحلية هي شيفرة مصدرية وليست ذاكرة مؤقتة. |
| تعامل مع Xcode بصورة منفصلة | File > Packages / DerivedData | إذا ظهرت المشكلة في Xcode فقط، فجرب File > Packages > Reset Package Caches وResolve Package Versions أو احذف DerivedData الخاص بالمشروع. قس مجلدات .build قبل تنظيف عام. يجد AskClean الفئة، لكن أوامر Swift هي التي تحدد النطاق. |
الأسئلة الشائعة
ماذا يحذف swift package clean؟
نواتج بناء الحزمة الحالية، ويعيد البناء التالي إنشاءها.
هل reset وpurge-cache متساويان؟
لا. يستهدف reset الحزمة الحالية، بينما يستهدف purge-cache ذاكرة المستودعات العامة.
هل أحذف Package.resolved؟
ليس للتنظيف العادي. احذفه فقط عندما تريد عمدًا حل الإصدارات من جديد.
المصادر