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

ปกป้องข้อมูลที่สร้างใหม่ไม่ได้ก่อนถอนการติดตั้ง
โฟลเดอร์โครงการไม่ใช่ไฟล์ตกค้างของ Xcode ให้สำรอง repository, ไฟล์ที่ยังไม่ commit, แพ็กเกจภายในและ asset เก็บ Archives/dSYM ของเวอร์ชันที่ยังอยู่บน App Store, TestFlight หรือลูกค้า และสถานะ Simulator ที่ต้องใช้
- ออกจาก Xcode ก่อน การลบ DerivedData ขณะ Xcode กำลังทำงานอาจทำให้ตัวทำดัชนีของมันสับสน และไฟล์ที่ Xcode เปิดค้างอยู่อาจลบไม่สะอาด
- หาโฟลเดอร์: ใน Xcode เปิด Settings > Locations แล้วคลิกลูกศรเล็ก ๆ ข้างพาธ DerivedData เพื่อเปิดดูใน Finder หรือใน Finder กด Command-Shift-G แล้วพิมพ์ ~/Library/Developer/Xcode/DerivedData ตรง ๆ เลยก็ได้
- เรียงโฟลเดอร์ย่อยของโปรเจกต์ตามขนาด เลือกอันที่อยากกำจัด (หรือ Command-A เลือกทั้งหมด) แล้วย้ายลงถังขยะ ลงถังขยะก่อนคือนิสัยที่ปลอดภัยกว่า — เปลี่ยนใจเมื่อไหร่ก็กู้คืนได้ทันที
- จะใช้ Terminal แทนก็ได้: rm -rf ~/Library/Developer/Xcode/DerivedData ลบทั้งหมดในคำสั่งเดียว เร็วกว่า Finder สำหรับโฟลเดอร์ใหญ่มาก ๆ แต่อ่านหมายเหตุด้านล่างก่อนใช้
- เปิด 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 คือวิธีแก้มาตรฐานอันดับแรก
แหล่งอ้างอิง