كيفية تنظيف ذاكرة 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 هي التي تحدد النطاق.
الأسئلة الشائعة
ماذا يحذف swift package clean؟
نواتج بناء الحزمة الحالية، ويعيد البناء التالي إنشاءها.
هل reset وpurge-cache متساويان؟
لا. يستهدف reset الحزمة الحالية، بينما يستهدف purge-cache ذاكرة المستودعات العامة.
هل أحذف Package.resolved؟
ليس للتنظيف العادي. احذفه فقط عندما تريد عمدًا حل الإصدارات من جديد.
المصادر