ฉันสามารถลบเนื้อหาของโฟลเดอร์ข้อมูล Xcode Derived ได้อย่างปลอดภัยหรือไม่


293

ฉันใช้พื้นที่ดิสก์เหลือน้อยและตรวจสอบผ่านยูทิลิตี้ของบุคคลที่สามซึ่งเป็นสิ่งที่ไดเรกทอรี ~ / Library / Developer / Xcode / DerivedData ใช้พื้นที่ดิสก์ประมาณ 22GB

ฉันค้นหา stackoverflow และพบโพสต์นี้

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

คำตอบที่ได้รับการยอมรับสำหรับคำถามนี้แนะนำว่าฉันไม่ควรแตะ / ลบโฟลเดอร์ออกจากไดเรกทอรีนี้ ดังนั้นสิ่งที่ฉันทำคือ

  • พบโฟลเดอร์โครงการบิลด์ที่มีอยู่สำหรับแอพที่ฉันมีใน Appstore
  • ลบโฟลเดอร์ออกจาก dir ที่ได้รับ
  • เปิดตัว XCode 5
  • เปิดโครงการนั้น
  • สร้างความสะอาด
  • ทดสอบและเรียบเรียงมันบนเครื่องจำลอง
  • ReArchived
  • ทุกอย่างทำงานได้ ไม่มีอะไรเสียหาย

นอกจากว่าฉันพลาดบางสิ่งในคำตอบที่โพสต์ฉันต้องการตรวจสอบให้แน่ใจโดยถามนักพัฒนาที่มีประสบการณ์ว่าถ้าฉันลบโฟลเดอร์ทั้งหมดจาก DerivedData มันจะไม่ทำร้ายฉันในการสร้างทดสอบและรวบรวมโครงการเหล่านั้น


คำตอบที่ได้รับการยอมรับสำหรับคำถามที่อ้างอิงคือstackoverflow.com/a/7284632/8047ซึ่งไม่ได้พูดอะไรเกี่ยวกับการไม่ลบจาก DerivedData ... แม้ว่า Archives สำคัญต่อการดีบักเนื้อหาในภายหลัง แต่นั่นเป็นไดเรกทอรีที่แตกต่างกัน
Dan Rosenstark

คำตอบ:


372

ใช่คุณสามารถลบไฟล์ทั้งหมดจากDerivedDataโฟลเดอร์ย่อย(Not DerivedData Folder)โดยตรง

ที่จะไม่ส่งผลกระทบต่องานโครงการของคุณ เนื้อหาของDerivedDataโฟลเดอร์ถูกสร้างขึ้นในช่วงเวลาบิลด์และคุณสามารถลบออกได้หากต้องการ มันไม่ใช่ปัญหา

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

Xcode8 + อัปเดต

จาก Xcode8 ที่ลบตัวเลือกโครงการออกจากแท็บหน้าต่างเพื่อให้คุณยังคงสามารถใช้วิธีแรก:

Xcode -> Preferences -> location -> click on small arrow button as i explain in my first answer.

การอัปเดต Xcode7.3 สำหรับการลบ DeriveData ของโครงการใดโครงการหนึ่งคุณเพียงแค่ทำตามขั้นตอนต่อไปนี้:

ไปที่Window -> Project:

ป้อนคำอธิบายรูปภาพที่นี่

คุณสามารถค้นหารายการของโครงการและคุณสามารถไปที่DerivedDataโฟลเดอร์หรือคุณสามารถลบแต่ละโครงการโดยตรงDerivedData

ป้อนคำอธิบายรูปภาพที่นี่


ฉันไม่ได้ทำงานกับ Xcode5 แต่ใน 4.6.3 คุณสามารถค้นหาDerivedDataโฟลเดอร์ตามที่พบในภาพด้านล่าง:

ป้อนคำอธิบายรูปภาพที่นี่

หลังจากคลิกที่การตั้งค่า ..

ป้อนคำอธิบายรูปภาพที่นี่

คุณได้รับหน้าต่างนี้

ป้อนคำอธิบายรูปภาพที่นี่


1
ขอบคุณมากครับ เนื้อหา "Derived Data" นั้นเหมือนกับไฟล์ที่แคชและไม่ต้องการของ Xcode หรือไม่ ถ้าอย่างนั้นทำไมมันถึงโอเคที่จะลบมันเพื่อล้างพื้นที่?
Supertecnoboff

1
@gone คุณกำลังพูดถึงอะไร? ไฟล์ที่สร้างขึ้นต้องไปที่ไหนสักแห่ง
Droppy

2
ดีด้วย CMake และระบบสร้างอื่น ๆ แม้จะมีการสร้างนอกแหล่งที่มาไฟล์ที่สร้างขึ้น ฯลฯ ยังคงอยู่ในเส้นทางของโครงการและจะถูกลบหากฉันลบโครงสร้างโฟลเดอร์หรือทำความสะอาดเมื่อฉันทำความสะอาด เนื่องจากฉันทำเครื่องหมายมอบหมายประมาณ 100 ครั้งทุกสัปดาห์หรือมากกว่านั้นฉันได้รับไฟล์จำนวนมากที่ฉันต้องจำไว้เพื่อลบด้วยตนเองและใช้ XCode UI ซึ่งเป็นข้อมูลของแต่ละโครงการ ดังนั้นฉันจึงแสดงความคิดเห็นก่อนหน้านี้แม้ว่าตอนนี้ฉันจะใช้นามแฝงของ William ใน. bashrc แล้ว
ไปจาก

XCode 8 เปลี่ยนแปลงสิ่งต่าง ๆ อีกครั้ง (มันเป็นความเจ็บปวดในตูด) ตอนนี้เราต้องไปที่โฟลเดอร์ด้วยตนเอง/Users/YourUsername/Library/Developer/Xcode/DerivedDataแล้วลบออกทั้งหมด ตามที่คุณได้แก้ไขสำหรับ XCode 7 แล้วฉันคิดว่าคุณอาจต้องการแก้ไขอีกครั้งสำหรับ XCode 8
sweta.me

1
คุณสามารถตรวจสอบคำตอบทั้งหมดของฉันมีคำตอบหลายคำในแบบเก่าที่ยังคงใช้งานได้ดีไปและจากแท็บสถานที่ :)
Nitin Gohel

124

ฉันได้ล้างข้อมูลที่ได้รับบ่อยครั้งพอที่ฉันมีชื่อแทน มันสามารถแก้ไขปัญหาการสร้าง ฉันมีสิ่งต่อไปนี้ใน /Users/Myusername/.bash_profile

alias purgeallbuilds='rm -rf ~/Library/Developer/Xcode/DerivedData/*'

จากนั้นในเทอร์มินัลฉันพิมพ์ purgeallbuilds และโฟลเดอร์ย่อยทั้งหมดของ DerivedData จะถูกลบ


24
คุณสามารถลบโฟลเดอร์ DerivedData ได้ มันจะถูกสร้างขึ้นใหม่
Nick Lockwood

1
งานสร้างล้มเหลวทันทีใน Xcode 8 เมื่อฉันลบโฟลเดอร์นี้ เมื่อฉันเพิ่มมันกลับทำงานได้อีกครั้ง
ทิม

นี่คือเคล็ดลับที่มีประโยชน์มาก ฉันมักจะเจอปัญหาการขาดแคลนพื้นที่ทุกครึ่งปีและมันก็ยากที่จะจำได้ว่าควรจะลบโฟลเดอร์ไหน นามแฝงสะดวกมาก
Oliver Zhang

35

XCODE 10 อัปเดต

บนแท็บ:

  1. คลิก Xcode
  2. การตั้งค่า
  3. ตำแหน่งที่ตั้ง -> ข้อมูลที่ได้รับ

คุณสามารถเข้าถึงข้อมูลที่ได้รับทั้งหมดและล้างข้อมูลโดยการลบ


ส่วน Derived Data จะกำหนดเส้นทางของข้อมูลที่ได้รับเท่านั้น ฉันไม่เห็นทุกที่เพื่อดูและลบ ทำไมไม่ทำผ่าน command line?
AlxVallejo

2
@AlxVallejo ที่ส่วนท้ายของที่อยู่พา ธ คุณจะเห็นไอคอนที่จะพาคุณไปยังโฟลเดอร์ แตะที่มันและลบโฟลเดอร์และมันจะถูกสร้างขึ้นใหม่
Umit Kaya

34

XCODE 7.2 UPDATE

(ใช้ได้กับ 7.1.1)

  1. คลิกที่หน้าต่างแล้วโครงการแล้วลบข้อมูลที่ได้รับ

แบบนี้:

ป้อนคำอธิบายรูปภาพที่นี่

แล้วลบที่นี่:

ป้อนคำอธิบายรูปภาพที่นี่


หวังว่าจะช่วย!


2
วิธีนี้จะช่วยให้คุณสามารถลบออกได้ทีละตัว แต่วิธีที่ใช้ในการโพสต์อื่นนั้นใช้สำหรับลบเนื้อหาโฟลเดอร์ DerivedData ในครั้งเดียว
XIII

23
 $ du -h -d=1 ~/Library/Developer/Xcode/*

แสดงอย่างน้อยสองโฟลเดอร์มีขนาดใหญ่มาก:

 1.5G   /Users/horace/Library/Developer/Xcode/DerivedData
 9.4G   /Users/horace/Library/Developer/Xcode/iOS DeviceSupport

อย่าลังเลที่จะลบสิ่งต่าง ๆ ในโฟลเดอร์:

 rm -rf ~/Library/Developer/Xcode/DerivedData/*

และบางส่วนใน:

 open ~/Library/Developer/Xcode/iOS\ DeviceSupport/

2
อึศักดิ์สิทธิ์ ... การลบไฟล์จาก iOS เวอร์ชันเก่าในโฟลเดอร์สนับสนุนอุปกรณ์ทำให้มีอิสระมากขึ้น 28GB ...
kareem

17

เพิ่งสร้าง repo GitHub ด้วยสคริปต์ขนาดเล็กที่สร้างดิสก์ RAM ถ้าคุณชี้โฟลเดอร์ DerivedData ของคุณไปที่/Volumes/ramdiskหลังจากนำดิสก์ออกไฟล์ทั้งหมดจะหายไป

มันเพิ่มความเร็วในการรวบรวมยังช่วยขจัดปัญหานี้

xc-launch repo

เปิดตัวดีที่สุดโดยใช้DTerm


11

XCode 8: การลบข้อมูลที่ได้รับสำหรับโครงการปัจจุบันของคุณ:

คลิกเมนูผลิตภัณฑ์

กดปุ่มตัวเลือก

คลิก Clean Build Folder


เมื่อฉันกดปุ่มตัวเลือกค้างไว้ตัวเลือก Clean Build จะเป็นสีเทา : /
AlxVallejo

4

XCODE 10 อัปเดต

คลิกเพื่อXcodeที่แถบสถานะจากนั้นเลือกการตั้งค่า

ในหน้าต่าง PopUp เลือกสถานที่ก่อนส่วนสุดท้าย

คุณสามารถเข้าถึงโฟลเดอร์Derived Dataด้วยไอคอนขนาดเล็กด้านขวา

ป้อนคำอธิบายรูปภาพที่นี่


2

~ / Library / Developer / Xcode / DerivedData


โดยค่าเริ่มต้นใช่; ฉันใช้~/tmp/DerivedDataดังนั้นฉันสามารถไปที่ไฟล์ / บันเดิลที่สร้างขึ้นได้ง่ายขึ้น
Droppy

1

ใช่ปลอดภัยที่จะลบสคริปต์ของฉันค้นหาและ nukes ทุกครั้งที่พบแก้ไขได้อย่างง่ายดายไปยังไดเรกทอรีท้องถิ่น

#!/usr/bin/env bash
set -o errexit
set -o nounset
set -o pipefail
IFS=$'\n\t'

for drive in Swap Media OSX_10.11.6/$HOME
do
   pushd /Volumes/${drive}  &> /dev/null
   gfind . -depth -name 'DerivedData'|xargs -I '{}' /bin/rm -fR '{}'
   popd &> /dev/null
done


-1

ฉันจะบอกว่าปลอดภัย - ฉันมักจะลบเนื้อหาของโฟลเดอร์สำหรับโครงการ iOS หลายประเภทด้วยวิธีนี้ และฉันไม่ได้มีปัญหาใด ๆ กับการสร้างหรือส่งไปยัง App Store ขั้นตอนนี้จะลบข้อมูลที่ได้รับมาและล้างสินทรัพย์ที่แคชของโครงการทั้ง Xcode 5 และ 6

บางครั้งก็แค่เรียก rm -rf ในไดเรกทอรี Derived Data ทิ้งไฟล์เอ้อระเหยหรือสอง แต่สคริปต์ของฉันลูปจนกว่าไฟล์ทั้งหมดจะถูกลบ


ฮึ. สะกดผิด ฉันหมายถึง 'ให้'
clearlight

อาฉันเชื่อมโยงไปยังสคริปต์ที่ฉันให้ไว้ในคำตอบของคำถามอื่น วิธีนี้หากฉันต้องการอัปเดตสคริปต์ฉันต้องแก้ไขในที่เดียวเท่านั้น คุณสามารถติดตามลิงค์ได้หรือไม่?
Sheamus

ฉันเห็นรหัสตอนนี้ ไม่เห็นลิงก์มาก่อน (ถ้ามี) ขอบคุณ
clearlight

-1

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

  1. เลือกXcode -> การตั้งค่า ..

ขั้นตอนที่ 1

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

ขั้นตอนที่ 2

  1. จะเป็นการเปิดโฟลเดอร์ที่มีข้อมูลที่ได้รับมาคลิกขวาและลบโฟลเดอร์

ขั้นตอนที่ 3

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