AskCleanAskClean

วิธีถอน Xcode จาก Mac อย่างสมบูรณ์โดยไม่ทำโครงการหรือ dSYM หาย

ทีม AskClean · อัปเดตเมื่อ 2026-09-01

ก่อนถอน Xcode ทั้งหมด ให้สำรองโครงการต้นฉบับและเก็บ Archives กับ dSYM ที่ยังใช้กับ build ที่เผยแพร่ จากนั้นย้ายแอปลงถังขยะและตรวจ DerivedData, simulator, DeviceSupport และเครื่องมือบรรทัดคำสั่งแยกกัน

วิธีถอน Xcode จาก Mac อย่างสมบูรณ์โดยไม่ทำโครงการหรือ dSYM หาย
ก่อนถอน Xcode ทั้งหมด ให้สำรองโครงการต้นฉบับและเก็บ Archives กับ dSYM ที่ยังใช้กับ build ที่เผยแพร่ จากนั้นย้ายแอปลงถังขยะและตรวจ DerivedData, simulator, DeviceSupport และเครื่องมือบรรทัดคำสั่งแยกกัน

ปกป้องข้อมูลที่สร้างใหม่ไม่ได้ก่อนถอนการติดตั้ง

โฟลเดอร์โครงการไม่ใช่ไฟล์ตกค้างของ Xcode ให้สำรอง repository, ไฟล์ที่ยังไม่ commit, แพ็กเกจภายในและ asset เก็บ Archives/dSYM ของเวอร์ชันที่ยังอยู่บน App Store, TestFlight หรือลูกค้า และสถานะ Simulator ที่ต้องใช้

  1. ออกจาก Xcode ก่อน การลบ DerivedData ขณะ Xcode กำลังทำงานอาจทำให้ตัวทำดัชนีของมันสับสน และไฟล์ที่ Xcode เปิดค้างอยู่อาจลบไม่สะอาด
  2. หาโฟลเดอร์: ใน Xcode เปิด Settings > Locations แล้วคลิกลูกศรเล็ก ๆ ข้างพาธ DerivedData เพื่อเปิดดูใน Finder หรือใน Finder กด Command-Shift-G แล้วพิมพ์ ~/Library/Developer/Xcode/DerivedData ตรง ๆ เลยก็ได้
  3. เรียงโฟลเดอร์ย่อยของโปรเจกต์ตามขนาด เลือกอันที่อยากกำจัด (หรือ Command-A เลือกทั้งหมด) แล้วย้ายลงถังขยะ ลงถังขยะก่อนคือนิสัยที่ปลอดภัยกว่า — เปลี่ยนใจเมื่อไหร่ก็กู้คืนได้ทันที
  4. จะใช้ Terminal แทนก็ได้: rm -rf ~/Library/Developer/Xcode/DerivedData ลบทั้งหมดในคำสั่งเดียว เร็วกว่า Finder สำหรับโฟลเดอร์ใหญ่มาก ๆ แต่อ่านหมายเหตุด้านล่างก่อนใช้
  5. เปิด Xcode ใหม่แล้วบิลด์ คาดไว้เลยว่าการบิลด์ครั้งแรกของแต่ละโปรเจกต์จะนานกว่าปกติชัดเจน และ "Indexing" จะรันในแถบกิจกรรมอยู่พักใหญ่ — ทั้งคู่เป็นต้นทุนครั้งเดียว

ระวัง rm -rf ให้ดี: มันข้ามถังขยะและลบถาวรทันที ไม่มี undo พิมพ์พาธให้ตรงเป๊ะ อย่ารันด้วย sudo สำหรับงานนี้เด็ดขาด และถ้าไม่ถนัด Terminal เส้นทางผ่าน Finder ทำงานเดียวกันแบบย้อนกลับได้

ลบ DerivedData

มีสามวิธี และปลายทางเหมือนกัน คำสั่ง Clean Build Folder ของ Xcode (Product > Clean Build Folder หรือ Command-Shift-K) ล้างแค่ผลลัพธ์บิลด์ของโปรเจกต์ที่เปิดอยู่ตอนนั้น — มีประโยชน์เวลาแก้บิลด์เพี้ยน ๆ แต่แทบไม่ขยับเข็มเรื่องพื้นที่ดิสก์ ถ้าจะเอาพื้นที่คืนจริง ๆ ต้องลบตัวโฟลเดอร์ DerivedData เอง

ลบทีละโปรเจกต์คือทางเลือกแบบผ่าตัด: เก็บ DerivedData ของสองสามโปรเจกต์ที่คุณบิลด์ทุกวันไว้ แล้วลบโฟลเดอร์ของที่เหลือทั้งหมด ส่วนลบทั้งก้อนคือทางเลือกแบบเร็ว และก็โอเคเหมือนกัน — เพียงแต่คุณจ่ายต้นทุน rebuild เต็มรูปแบบกับทุกโปรเจกต์พร้อมกัน

ลบแอปด้วยวิธีเดียวกับที่ใช้ติดตั้ง

ออกจาก Xcode และ Simulator แล้วใช้ Finder ย้าย Xcode.app ที่ถูกต้องลงถังขยะ อย่าลบ /Library/Developer/CommandLineTools อัตโนมัติ เพราะ Git, Homebrew, clang และสคริปต์ build อาจยังใช้อยู่

แคชตัวจัดการแพ็กเกจ (SwiftPM, CocoaPods, npm, Homebrew)

ตัวจัดการแพ็กเกจเก็บ dependency ทุกตัวที่เคยดาวน์โหลดไว้เพื่อให้การติดตั้งครั้งหน้าเร็ว นั่นคือวิศวกรรมที่ดีแต่สุขอนามัยดิสก์ที่แย่: แคชมีแต่จะโต และบนเครื่องที่ผ่านโปรเจกต์มาหลายปี พวกมันสะสมเงียบ ๆ จนถึง 10-20 GB ทั้งหมดล้างได้อย่างปลอดภัย — กรณีแย่สุดคือการติดตั้งครั้งถัดไปต้องดาวน์โหลดแพ็กเกจใหม่

Swift Package Manager แคชแพ็กเกจที่ดาวน์โหลดไว้ที่ ~/Library/Caches/org.swift.swiftpm และ checkout ที่ resolve แล้วของแต่ละโปรเจกต์ก็อยู่ในโฟลเดอร์ DerivedData ของมันด้วย — การล้าง DerivedData จึงล้างพวกนั้นไปแล้วในตัว ส่วนแคชกลางลบจาก Finder ได้ หรือใช้ rm -rf กับพาธนั้น

ตรวจสอบก่อนล้างถังขยะ

ตรวจ Applications, process และ xcode-select -p อีกครั้ง ยืนยันว่าโครงการ Archives/dSYM ที่จำเป็นและข้อมูล Simulator ยังอยู่ก่อนล้างถังขยะ การแสดง System Data อาจอัปเดตช้า

แผนผังความปลอดภัยสำหรับการถอนการติดตั้งทั้งหมด

ลบ Xcode อย่างปลอดภัย โดยแยกแคชที่สร้างใหม่ได้ออกจาก Archives, DeviceSupport, ข้อมูล Simulator และ Command Line Tools

การตัดสินใจจุดที่ตรวจสอบหรือดำเนินการผลกระทบและการยืนยัน
ปกป้องข้อมูลที่สร้างใหม่ไม่ได้ก่อนถอนการติดตั้งProjects / Xcode Organizer / Archivesโฟลเดอร์โครงการไม่ใช่ไฟล์ตกค้างของ Xcode ให้สำรอง repository, ไฟล์ที่ยังไม่ commit, แพ็กเกจภายในและ asset เก็บ Archives/dSYM ของเวอร์ชันที่ยังอยู่บน App Store, TestFlight หรือลูกค้า และสถานะ Simulator ที่ต้องใช้
ลบแอปด้วยวิธีเดียวกับที่ใช้ติดตั้ง/Applications/Xcode.app / Finderออกจาก Xcode และ Simulator แล้วใช้ Finder ย้าย Xcode.app ที่ถูกต้องลงถังขยะ อย่าลบ /Library/Developer/CommandLineTools อัตโนมัติ เพราะ Git, Homebrew, clang และสคริปต์ build อาจยังใช้อยู่
ตรวจสอบก่อนล้างถังขยะxcode-select -p / Activity Monitorตรวจ Applications, process และ xcode-select -p อีกครั้ง ยืนยันว่าโครงการ Archives/dSYM ที่จำเป็นและข้อมูล Simulator ยังอยู่ก่อนล้างถังขยะ การแสดง System Data อาจอัปเดตช้า

คำถามที่พบบ่อย

ลบ ~/Library/Developer ทั้งหมดได้หรือไม่

ไม่ได้ เพราะมีทั้ง DerivedData ที่สร้างใหม่ได้และ Archives/dSYM, DeviceSupport, runtime กับสถานะ Simulator ต้องพิจารณาแยกประเภท

ลบ DerivedData ปลอดภัยไหม?

ปลอดภัย — เป็นหนึ่งในการลบก้อนใหญ่ที่ปลอดภัยที่สุดบน Mac เลย DerivedData มีแต่ไฟล์ที่ Xcode สร้างจากซอร์สของคุณ: ผลลัพธ์บิลด์ แคชโมดูล ดัชนี และบันทึก โค้ด ไฟล์โปรเจกต์ และประวัติ git ของคุณอยู่ที่อื่นและไม่ได้รับผลกระทบเลย ผลตามมาอย่างเดียวคือการบิลด์ครั้งถัดไปของแต่ละโปรเจกต์เป็น rebuild เต็มรูปแบบ และการทำดัชนีรันใหม่อีกรอบ

ควรล้าง DerivedData บ่อยแค่ไหน?

ไม่มีตารางบังคับ — ล้างเมื่อมันใหญ่จนมีนัยสำคัญ ซึ่งสำหรับนักพัฒนาที่ทำงานสม่ำเสมอส่วนใหญ่คือทุกหนึ่งถึงสองเดือน สองจังหวะที่ล้างแล้วคุ้มเสมอ: ตอนต้องการพื้นที่ดิสก์ด่วน และตอนโปรเจกต์มีบิลด์พังแบบอธิบายไม่ได้หรือ code completion ค้างของเก่า ซึ่งการล้าง DerivedData คือวิธีแก้มาตรฐานอันดับแรก

แหล่งอ้างอิง

คู่มือถอนการติดตั้งแบบสมบูรณ์ที่เกี่ยวข้อง