تنظيف DerivedData وملفات التخزين المؤقت والمحاكيات في Xcode بأمان
دليل المطور خطوة بخطوة لتنظيف Xcode DerivedData وذاكرة التخزين المؤقت للوحدة النمطية وأجهزة محاكاة iOS غير المستخدمة على Mac دون الإضرار ببيئة البناء الخاصة بك.

بالنسبة لمطوري iOS وmacOS وvisionOS، تعد Xcode أداة لا غنى عنها. ولكن يمكن أيضًا أن يصبح مستهلكًا كبيرًا للتخزين على Mac الخاص بالمطور. على مدى أشهر من البناء والاختبار وتصحيح الأخطاء، يقوم Xcode بتجميع مخازن الفهرس وعناصر البناء المتوسطة وذاكرة التخزين المؤقت للوحدات والمحفوظات وأوقات تشغيل المحاكاة.
يمكن أن تستهلك أدلة إنشاء Xcode ومحاكياتها مساحة كبيرة على القرص بمرور الوقت، اعتمادًا على عدد المشاريع النشطة والتبعيات وأوقات تشغيل المحاكاة. عند انخفاض سعة التخزين، تتباطأ عمليات الإنشاء ويمكن أن تحدث مشكلات في الفهرسة. فيما يلي كيفية تنظيف Xcode DerivedData، وإنشاء ذاكرة التخزين المؤقت، وأجهزة محاكاة iOS غير المستخدمة بأمان دون كسر تكوينات مشروعك.
ما هو Xcode DerivedData ولماذا ينمو؟
يقوم Xcode بتخزين معلومات وقت البناء في دليل مركزي يقع في ~/Library/Developer/Xcode/DerivedData. داخل هذا الدليل، يقوم Xcode بإنشاء مجلد فرعي مخصص لكل مشروع ومساحة عمل تفتحها.
يحتوي DerivedData على: 1. فهرسة البيانات: خرائط بناء الجملة، والرسوم البيانية للرموز، والمراجع الترافقية المستخدمة لإكمال التعليمات البرمجية والمساعدة السريعة. 2. بناء المنتجات: ملفات الكائنات المتوسطة (.o)، والأطر المترجمة مسبقًا، وdSYMs. 3. وحدات التخزين المؤقت للوحدات: وحدات Swift و Clang المجمعة مسبقًا. نظرًا لأنه يمكن أن تتراكم القطع الأثرية من الإصدارات الأقدم أو الأهداف المعاد تسميتها أو الفروع المؤرشفة، فإن DerivedData يميل إلى التوسع حتى يتم مسحه.
هل من الآمن حذف DerivedData؟
يحتوي DerivedData على بيانات البناء والفهرسة التي تم إنشاؤها والتي يمكن لـ Xcode عادةً إعادة إنشائها. قد تؤدي إزالته إلى إعادة بناء وإعادة فهرسة كاملة، لذا تأكد من حذف DerivedData بدلاً من بيانات المشروع أو الأرشيف.
يعد مسح DerivedData خطوة قياسية لاستكشاف الأخطاء وإصلاحها في مجتمع مطوري Apple عندما يتصرف Xcode بشكل متقطع، أو يعرض أخطاء بناء مستمرة، أو يفشل في حل تبعيات Swift Package Manager. ضع في اعتبارك أن البناء اللاحق سيستغرق وقتًا أطول لأنه يجب على Xcode إعادة فهرسة قاعدة التعليمات البرمجية الخاصة بك وإعادة ترجمة التبعيات.
الطرق اليدوية لتنظيف DerivedData
يمكنك تنظيف DerivedData يدويًا باستخدام إعدادات Xcode أو Finder، أو عبر الوحدة الطرفية:
• عبر إعدادات Xcode وFinder (مستحسن): افتح Xcode → الإعدادات (Command + ,) → المواقع. ضمن "البيانات المشتقة"، انقر فوق رمز السهم الصغير بجوار المسار لفتح المجلد في Finder. تأكد من وجودك داخل DerivedData، وقم بإنهاء Xcode، ثم حدد المجلدات الفرعية للمشروع وانقلها إلى سلة المهملات. يتيح لك هذا فحص ما تتم إزالته واستعادة الملفات من سلة المهملات إذا لزم الأمر.
• عبر الوحدة الطرفية (متقدم): إذا كنت تفضل سير عمل سطر الأوامر، قم بإنهاء Xcode أولاً وقم بتشغيل: rm -rf ~/Library/Developer/Xcode/DerivedData/* . لاحظ أن rm -rf يحذف الملفات نهائيًا على الفور دون نقلها إلى سلة المهملات، لذا تحقق من المسار بعناية قبل تشغيله.
تنظيف أجهزة المحاكاة iOS وwatchOS وtvOS غير المستخدمة
يستهلك كل وقت تشغيل للمحاكاة يتم تنزيله من خلال Xcode عدة غيغابايت من مساحة التخزين. بمرور الوقت، ومع تثبيت تحديثات نظام التشغيل الجديدة، تظل إصدارات المحاكاة الأقدم على محرك الأقراص لديك.
لفحص أجهزة المحاكاة المثبتة، قم بتشغيل xcrun simctl list في الوحدة الطرفية. لإزالة أجهزة المحاكاة غير المتوفرة أو المعزولة ومسح ذاكرة التخزين المؤقت الخاصة بها، قم بتشغيل xcrun simctl delete unavailable. يمكنك أيضًا الانتقال إلى إعدادات Xcode → المكونات لعرض وإدارة وإزالة أوقات تشغيل محاكي النظام الأساسي التي تم تنزيلها والتي لم تعد تختبرها.
استخدام Smart Cleaner AI إلى جانب صيانة التخزين Xcode
عند إدارة مساحة تخزين المطورين، يساعد الفحص البصري في تحديد مكان تركيز سعة محرك الأقراص.
يمكن أن يساعدك محلل القرص الخاص بـ Smart Cleaner AI في فحص المجلدات والملفات ذات سعة التخزين الثقيلة والتي تكون مرئية للماسح الضوئي عبر نظامك. لا يزال يتعين مراجعة وتنفيذ عمليات التنظيف الخاصة بـ Xcode - مثل إدارة DerivedData ومنتجات البناء وأجهزة المحاكاة - باستخدام إعدادات Xcode وFinder وأدوات سطر أوامر المطورين بحيث تظل تكوينات المشروع سليمة.
تنظيف DerivedData والمحاكيات في Xcode في 4 خطوات
- 1
قم بإنهاء Xcode تمامًا
تأكد من إغلاق Xcode وجميع مثيلات المحاكاة النشطة قبل إجراء أي إزالة لذاكرة التخزين المؤقت.
- 2
حدد موقع DerivedData في Finder
افتح إعدادات Xcode → المواقع وانقر فوق السهم الموجود بجوار DerivedData، أو انتقل مباشرة إلى ~/Library/Developer/Xcode/DerivedData في Finder.
- 3
حذف المجلدات الفرعية الخاصة ببناء DerivedData
حدد مجلدات المشاريع غير المرغوب فيها داخل DerivedData وأرسلها إلى Trash. سيقوم Xcode بإعادة إنشاء فهارس جديدة عند إعادة البناء.
- 4
إدارة أجهزة المحاكاة في المكونات أو المحطة الطرفية
استخدم xcrun simctl delete unavailable في الوحدة الطرفية، أو افتح إعدادات Xcode ← المكونات لحذف أوقات تشغيل المحاكاة غير المستخدمة.
افحص مساحة المطورين واستعد مساحة القرص بأمان
يساعدك Smart Cleaner AI: Disk Clean على تصور استخدام القرص، وتحديد موقع الملفات الكبيرة، وإزالة ذاكرة التخزين المؤقت للتطبيقات غير الضرورية حتى تتمكن من الحفاظ على Mac سريعًا وسهلاً.
الأسئلة الشائعة
هل سيؤدي حذف DerivedData إلى حذف كود المصدر الخاص بي أو سجل Git؟▼
رقم DerivedData يحتوي فقط على عناصر البناء والفهارس المؤقتة. تظل ملفات مشروعك، والتعليمة البرمجية المصدرية، ومستودعات Git دون تغيير تمامًا.
لماذا يكون البناء الأول بطيئًا بعد حذف DerivedData؟▼
لأنه يجب على Xcode إعادة بناء فهارس الرموز الداخلية وإعادة ترجمة حزم Swift من البداية. ستعود عمليات البناء الإضافية اللاحقة إلى السرعة الكاملة.
أين يتم تخزين أرشيفات Xcode؟▼
يقوم Xcode بتخزين أرشيفات التوزيع في ~/Library/Developer/Xcode/Archives/. يمكنك مراجعة وحذف أرشيفات التطوير القديمة عبر Xcode Organizer (نافذة → المنظم).
هل يمكنني نقل DerivedData إلى SSD خارجي؟▼
نعم، في إعدادات Xcode → المواقع، يمكنك تعيين مسار DerivedData مخصص على محرك أقراص NVMe خارجي، على الرغم من أن محركات أقراص Mac SSD الداخلية توفر إنتاجية بناء أسرع.
كم مرة يجب على المطورين تنظيف DerivedData؟▼
عادةً ما يقوم المطورون بتنظيف DerivedData عند استكشاف أخطاء الفهرسة أو الترجمة وإصلاحها، أو بعد تحديثات Xcode الرئيسية، أو عند استعادة مساحة التخزين من المشاريع القديمة غير النشطة.
المصادر
Ready when you are
Download Smart Cleaner AI for Mac
Analyze Mac storage, safely clear system data caches, find large files, and remove app leftovers with on-device controls.
By using Smart Cleaner AI, you agree to our Terms of Use and Privacy Policy.