هل يمكن حذف Xcode Archives؟ أزل البنيات القديمة بأمان
فريق AskClean · آخر تحديث 2026-11-02
نعم، يمكنك حذف Xcode Archives القديمة، لكن فقط بعد التأكد من أن البنية خرجت من التوزيع والدعم وأن ملف dSYM الخاص بها لم يعد لازمًا لفك ترميز تقارير الأعطال. راجع ملفات .xcarchive واحدًا تلو الآخر في Organizer، واحتفظ بكل بنية ما زالت متاحة على App Store أو TestFlight أو قيد الاستخدام بتوزيع Enterprise أو Ad Hoc، ولا تنقل إلى سلة المهملات إلا الأرشيفات التي حلّت محلها إصدارات أحدث.

لماذا تختلف Archives عن DerivedData
ينتج الأمر Product > Archive بنية قابلة للتوزيع في حزمة .xcarchive، يحفظها Xcode افتراضيًا في ~/Library/Developer/Xcode/Archives ويعرضها في Organizer. وخلافًا لـ DerivedData الذي يُعاد إنشاؤه من المصدر، قد يضم الأرشيف الملف التنفيذي الدقيق وبيانات البناء وملف dSYM المرتبط بتلك البنية عبر UUID، وإعادة بناء commit نفسه لاحقًا تنتج معرّفات جديدة لا بديلًا مطابقًا. فإذا وصل تقرير عطل لبنية فقدت رموزها، بقيت إطارات المكدس عناوين ذاكرة بدل أسماء الدوال والأسطر.
راجع البنيات قبل الحذف
افتح Window > Organizer > Archives وراجع لكل عنصر التطبيق والإصدار ورقم البنية وتاريخ الإنشاء وحالة التوزيع. أعدّ قائمة بما ستحتفظ به قبل قائمة الحذف: كل إصدار متاح للمستخدمين، وكل بنية TestFlight نشطة، وكل بنية Enterprise أو Ad Hoc ما زالت مثبتة، وكل إصدار قد تحتاج إلى التحقيق في أعطاله. ولا يعني نجاح الرفع أن الأرشيف المحلي صار زائدًا عن الحاجة؛ فإرشادات Apple توصي بالاحتفاظ بأرشيف كل بنية توزعها.
- افتح Window > Organizer واختر Archives؛ ولقياس الحجم دون تغيير أي شيء شغّل du -sh ~/Library/Developer/Xcode/Archives في الوحدة الطرفية.
- اختر التطبيق، ثم سجّل الإصدار ورقم البنية لكل بنية منشورة أو على TestFlight أو بتوزيع Enterprise أو Ad Hoc ما زالت قيد الاستخدام.
- تأكد من رفع الرموز اللازمة حيث ينطبق ذلك، وانسخ الأرشيفات التي لا يمكن تعويضها إلى وحدة تخزين لها نسخة احتياطية إن كانت سياستك تقتضي ذلك.
- لا تضع في قائمة الحذف إلا الإصدارات المرشحة التي حلّت محلها أخرى، والبنيات الداخلية المتروكة، والإصدارات القديمة الخارجة عن فترة تحليل الأعطال.
- احذف المرشحين واحدًا تلو الآخر من Organizer، وتحقق من بقاء العناصر المطلوبة قبل إفراغ سلة المهملات.
التاريخ وحده ليس سياسة احتفاظ آمنة: قد يبقى ملف تنفيذي قديم من إصدار منشور مثبتًا على أجهزة المستخدمين بعد صدور إصدار أحدث بوقت طويل.
احذف بطريقة قابلة للاسترجاع
استخدم Organizer أولًا، فهو يعرض هوية التطبيق والإصدار ورقم البنية بجوار أمر الحذف، واحذف عنصرًا واحدًا في كل مرة. لا تلجأ إلى Finder إلا إذا تعذر على Organizer فتح حزمة قديمة أو تالفة: طابق بيانات Info.plist مع قائمة المراجعة، وانقل حزمة .xcarchive تلك وحدها إلى سلة المهملات، لا مجلد التاريخ كله. لا تعدّل الملفات داخل الحزمة، وتجنب rm -rf لأنه يتجاوز سلة المهملات، ولا تفرغ السلة قبل إعادة فتح Organizer والتأكد من بقاء ما تحتاج إليه.
حدد سياسة للاحتفاظ
ابنِ السياسة على حالة الإصدار لا على عمر الملف، وسجّل لكل إصدار موقع الأرشيف وهل رُفعت رموزه وأين نسخته الاحتياطية ومتى يصبح قابلًا للحذف. وإذا احتجت إلى مساحة عاجلة، فابدأ بـ DerivedData وبيانات المحاكي القديمة، وأجّل مراجعة الأرشيفات حتى تتوفر مساحة عمل كافية. يعرض AskClean كل حزمة .xcarchive عنصرًا مستقلًا مع تحذير من أن حذفها لا رجعة فيه، ولا يعاملها كذاكرة مؤقتة تُحذف دفعة واحدة؛ وما توافق على حذفه يُحذف نهائيًا.
مقارنة القرارات والمخاطر
اعرف أي Xcode Archives يمكنك حذفها، وأين تُحفظ ملفات .xcarchive، وكيف تزيل من Organizer البنيات التي انتهى دعمها، ومتى تحتفظ بملفات dSYM.
| القرار | مكان التحقق | حد الأمان |
|---|---|---|
| لماذا تختلف Archives عن DerivedData | ~/Library/Developer/Xcode/Archives | ينتج الأمر Product > Archive بنية قابلة للتوزيع في حزمة .xcarchive، يحفظها Xcode افتراضيًا في ~/Library/Developer/Xcode/Archives ويعرضها في Organizer. |
| راجع البنيات قبل الحذف | Window > Organizer > Archives | افتح Window > Organizer > Archives وراجع لكل عنصر التطبيق والإصدار ورقم البنية وتاريخ الإنشاء وحالة التوزيع. |
| احذف بطريقة قابلة للاسترجاع | عبر Organizer أولًا، ثم Finder وسلة المهملات | استخدم Organizer أولًا، فهو يعرض هوية التطبيق والإصدار ورقم البنية بجوار أمر الحذف، واحذف عنصرًا واحدًا في كل مرة. |
| حدد سياسة للاحتفاظ | جرد الإصدارات / النسخة الاحتياطية | ابنِ السياسة على حالة الإصدار لا على عمر الملف، وسجّل لكل إصدار موقع الأرشيف وهل رُفعت رموزه وأين نسخته الاحتياطية ومتى يصبح قابلًا للحذف. |
الأسئلة الشائعة
هل يمكن حذف كل ما في مجلد Archives؟
ليس دفعة واحدة دون مراجعة؛ فقد يحتوي على النسخة الوحيدة من الملف التنفيذي وملف dSYM لإصدار موزع. احتفظ بكل بنية ما زالت مستخدمة، وبكل إصدار قد تحتاج إلى التحقيق في أعطاله.
هل يؤدي حذف الأرشيف إلى إزالة التطبيق من App Store؟
لا. حذف .xcarchive المحلي لا يزيل تطبيقًا مرفوعًا من App Store Connect ولا من أجهزة المستخدمين، لكنك تفقد الناتج المحلي الذي قد تحتاج إليه لإعادة التصدير أو لفك ترميز أعطال تلك البنية.
هل يمكن إعادة إنشاء dSYM ببناء commit نفسه مجددًا؟
ليس بشكل موثوق؛ يجب أن يطابق dSYM معرّف UUID للملف التنفيذي الموزع بدقة، والبناء الجديد ينتج هوية مختلفة. احتفظ بالأرشيف الأصلي أو برموزه المطابقة.
المصادر