ฉันจะลบอย่างปลอดภัยในไดเร็กทอรี ~ / Library / Developer / Xcode / DerivedData ของฉันได้อย่างไร


90

ฉันต้องการลบข้อมูลเก่า (เปลี่ยนได้?) และเนื้อหาDerivedDataดูเหมือนจะเป็นตัวเลือก เนื่องจากเป็นชื่อDerivedDataฉันจึงถือว่าเป็นข้อมูลที่หากขาดหายไปจะถูกสร้างขึ้นในระหว่างขั้นตอนการสร้างและถ้ามีอยู่จะถูกใช้ในช่วงเดียวกันนั้น ดูเหมือนจะเป็นเหตุผลที่ฉันสามารถลบข้อมูลโครงการเก่า ๆ ได้โดยไม่ต้องกลัวและถ้าฉันควรสร้างโครงการเก่านั้นครั้งแรกจะใช้เวลานานกว่าไซน์ปกติที่จะต้องสร้างข้อมูลที่ได้รับทั้งหมดนี้

ฉันเข้าใจผิดหรือเปล่านี่


8
ระวังให้มากตามที่ Joshua อธิบายว่าโฟลเดอร์นองเลือดมี"ข้อมูล dSYM สำหรับการดีบักในภายหลัง ... อย่าลบหากคุณต้องการที่จะสามารถแก้ไขข้อบกพร่องของแอปพลิเคชันของคุณในเวอร์ชันที่ปรับใช้"
Fattie

บางทีฉันควรใช้เคล็ดลับมาร์กอัป SO ทุกอย่างนอกเหนือจากการเน้นเพื่อเรียกสิ่งนั้นในคำตอบของฉัน :-D Block-quoted-star-slash-comment-code-bold-italic-bulleted-list ฯลฯ
Joshua Nozzi

17
@JoeBlow ตามที่ Joshua อธิบายว่าเป็นไดเร็กทอรีArchivesซึ่งมี "ข้อมูล dSYM สำหรับการดีบักในภายหลัง" หอจดหมายเหตุไดเรกทอรีเป็นพี่น้องของDerivedDataไดเรกทอรีซึ่งหมายความว่ามันจะอยู่ที่ระดับเดียวกันด้านล่าง~/Library/Developer/Xcodeเป็นDerivedDataดังนั้น "ที่โฟลเดอร์เลือด" (DerivedData) จะไม่ประกอบด้วยข้อมูล dSYM และเนื้อหาของมันสามารถลบได้อย่างปลอดภัย
mluisbrown

4
เมื่อใดก็ตามที่ฉันออกเวอร์ชันใหม่ฉันจะคัดลอก. xcarchive จาก Xcode ไปยัง git repo ของฉันและเก็บไว้ภายใต้การควบคุมเวอร์ชัน - นี่เป็นวิธีที่ดีในการรับ. dSYM แบบเก่าโดยไม่ต้องขึ้นอยู่กับไดเร็กทอรี Xcode ของเครื่องใดเครื่องหนึ่ง
บิล

คำตอบ:


123

ข้อมูลที่ได้มาโฟลเดอร์ที่มีทุกสร้างข้อมูลกลาง debug- และเป็นอิสระที่จะสร้างเป้าหมายเช่นเดียวกับดัชนีโครงการของคุณ มันเป็นเรื่องที่เป็นประโยชน์ที่จะลบข้อมูลที่ได้รับเมื่อคุณมีปัญหาแปลกดัชนี (จบรหัสทำงานไม่ถูกต้องคงสร้างดัชนีใหม่หรือแม้เพียงแค่โครงการช้า) การลบโฟลเดอร์ทั้งหมดจะทำให้ข้อมูลนี้สำหรับโปรเจ็กต์ทั้งหมดที่ Xcode 4 รู้

หอจดหมายเหตุโฟลเดอร์ (พี่น้องของข้อมูลที่ได้รับ) มีรูปแบบที่เก็บไว้เป้าหมายของคุณ นั่นคือการสร้างรุ่นรวมทั้งข้อมูล dSYM สำหรับการดีบักในภายหลัง สิ่งนี้คุณไม่ควรลบหากคุณต้องการให้สามารถดีบักเวอร์ชันที่ปรับใช้ของแอปพลิเคชันของคุณได้

คุณสามารถเก็บข้อมูลที่ได้รับมาสำหรับโปรเจ็กต์ที่กำหนดได้โดยเปิดหน้าต่างออแกไนเซอร์และเลือกแท็บโปรเจ็กต์ เลือกโปรเจ็กต์ที่ต้องการและคลิกปุ่มลบถัดจากเส้นทางข้อมูลที่ได้รับมา นี่เป็น "การนัดหยุดงานการผ่าตัด" มากกว่าสำหรับโครงการที่มีปัญหา


1
แน่นอน ไปที่บรรทัดคำสั่งและพิมพ์ "man rm" - ไปที่ถั่ว :-)
Joshua Nozzi

9
เฮ้อ. ฉันรู้rm. ~/Library/Developer/Xcode/DerivedData/MyProject-hghjhjhkjh/ฉันต้องการที่จะหาวิธีการแก้ไขปัญหาโฟลเดอร์ที่เชื่อมต่อกับโครงการเช่น วิธีที่ง่ายที่สุดที่ฉันพบคือการตั้งค่าโฟลเดอร์ DerivedData ที่สัมพันธ์กับโฟลเดอร์โครงการผ่านการตั้งค่า XCode
asgoth

4
เพียงอย่างรวดเร็วทราบ: ในXCode 6.x , projectsอยู่ในหน้าต่างของตัวเอง (ไม่ Organizer)
Olie

1
ฉันชอบศัพท์แสงทางทหารของคุณ XD
Josh

1
FWIW เครื่องมือการแจกจ่ายใหม่ ๆ มากมาย (AppCenter, HockeyApp, Crashlytics และอื่น ๆ ) ขอให้คุณส่งมอบไฟล์ dSYM เพื่อที่คุณจะได้ไม่ต้องจัดเก็บเอง
น้ำผึ้ง

38

เนื้อหาของ 'Derived Data' ถูกสร้างขึ้นในช่วงเวลาสร้าง คุณสามารถลบได้อย่างปลอดภัย ทำตามขั้นตอนด้านล่างเพื่อลบ 'ข้อมูลที่ได้รับ':

  1. เลือกXcode -> ค่ากำหนด ..

ขั้นตอนที่ 1

  1. เพื่อเปิดหน้าต่าง pop-up เลือกแท็บ ' สถานที่ตั้ง ' ในแท็บย่อยสถานที่คุณจะเห็น " ข้อมูลที่ได้รับ " คลิกที่ไอคอนลูกศรถัดจากเส้นทาง

ขั้นตอนที่ 2

  1. ซึ่งจะเปิดโฟลเดอร์ที่มี 'Derived Data' ให้คลิกขวาและลบโฟลเดอร์

ขั้นตอนที่ 3


ดังนั้นเมื่อแอปของฉันอยู่ในโปรแกรมจำลอง แต่ไม่ได้ทำงานจากโค้ดและหากฉันลบแล้วเรียกใช้โค้ดอีกครั้งจะทำให้เกิดปัญหาใด ๆ หรือไม่
Manthan

@ แมนทัน: ไม่ว่าจะไม่สร้างประเด็นใด ๆ
Jayprakash Dubey

30

ใช่ข้อมูลเหล่านี้ถูกสร้างขึ้นในช่วงเวลาสร้างและคุณสามารถลบได้หากต้องการไม่ใช่ปัญหา

มันจะถูกสร้างขึ้นใหม่เมื่อคุณสร้างอีกครั้ง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.