Czy mogę bezpiecznie usunąć zawartość folderu danych pochodnych Xcode?

293

Mam mało miejsca na dysku i sprawdziłem za pomocą narzędzia innej firmy, że między innymi ~ / Library / Developer / Xcode / DerivedData zajmuje około 22 GB miejsca na dysku.

Przeszukałem stackoverflow i znalazłem ten post

Jak mogę bezpiecznie usunąć w moim katalogu ~ / Library / Developer / Xcode / DerivedData?

Akceptowana odpowiedź na to pytanie sugeruje, że nie powinienem dotykać / usuwać folderów z tego katalogu. więc to, co zrobiłem, było

  • Znaleziono istniejący folder projektu kompilacji dla aplikacji, którą mam w Appstore
  • Usunięto folder z pochodnego katalogu
  • uruchomił XCode 5
  • Otwórz ten projekt
  • Czysta kompilacja
  • Przetestowano i skompilowano na symulatorze
  • Ponownie zarchiwizowane
  • Wszystko działało Nic nie zostało zepsute.

O ile nie przeoczyłem czegoś w odpowiedziach na posty, chcę się upewnić, pytając doświadczonych programistów, że jeśli usunę wszystkie foldery z DerivedData, nie zaszkodzi mi to w budowaniu, testowaniu i kompilowaniu tych projektów.

Sam B.
źródło
zaakceptowana odpowiedź na pytanie, o którym mowa, to stackoverflow.com/a/7284632/8047, która nie mówi nic o tym, aby nie usuwać danych DerivedData ... chociaż Archiwa jest ważna do późniejszego debugowania, ale to inny katalog.
Dan Rosenstark,

Odpowiedzi:

372

Tak, możesz bezpośrednio usunąć wszystkie pliki z DerivedDatapodfolderu (Not DerivedData Folder).

Nie wpłynie to na pracę nad projektem. Zawartość DerivedDatafolderu jest generowana podczas kompilacji i możesz je usunąć, jeśli chcesz. To nie jest problem.

Zawartość DerivedDatazostanie odtworzona przy ponownym budowaniu projektów.

Aktualizacja Xcode8 +

Z Xcode8, który usunął opcję projektu z karty okna, abyś mógł nadal używać pierwszego sposobu:

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

Aktualizacja Xcode7.3 Aby usunąć dane DeriveData z konkretnego projektu, wystarczy wykonać następujące kroki:

Idź do Window -> Project:

wprowadź opis zdjęcia tutaj

Możesz znaleźć listę projektów i możesz przejść do DerivedDatafolderu lub bezpośrednio usunąć poszczególne projektyDerivedData

wprowadź opis zdjęcia tutaj


Nie pracuję na Xcode5, ale w 4.6.3 możesz znaleźć DerivedDatafolder jak na poniższym obrazku:

wprowadź opis zdjęcia tutaj

Po kliknięciu Preferencji ..

wprowadź opis zdjęcia tutaj

Dostajesz to okno

wprowadź opis zdjęcia tutaj

Nitin Gohel
źródło
1
Dzięki wielkie. Czy zawartość „danych pochodnych” jest po prostu taka sama jak buforowane i niechciane pliki Xcode? Więc dlaczego można go usunąć, aby zwolnić miejsce?
Supertecnoboff,
1
@ gone O czym ty mówisz? Skompilowane pliki muszą gdzieś iść.
Droppy,
2
Cóż, w przypadku CMake i innych systemów make, nawet w przypadku kompilacji poza źródłami, wygenerowane pliki itp. Nadal znajdują się na ścieżce projektu i są usuwane, jeśli usunę strukturę folderów lub zostaną wyczyszczone podczas czyszczenia. Ponieważ zaznaczam około 100 zleceń co tydzień, otrzymuję ogromną liczbę plików, które muszę pamiętać, aby ręcznie usunąć i za pomocą interfejsu użytkownika XCode dane każdego projektu osobno. Tak więc podtrzymuję mój poprzedni komentarz, chociaż teraz zaimplementowałem alias Williama w moim .bashrc.
odszedł
XCode 8 ponownie zmienia rzeczy (zawsze był to ból w dupie). Teraz musimy ręcznie przejść do folderu w /Users/YourUsername/Library/Developer/Xcode/DerivedDatai usunąć je wszystkie. Jak już edytowałeś XCode 7, pomyślałem, że możesz chcieć edytować go ponownie dla XCode 8.
sweta.me
1
możesz sprawdzić moją pełną odpowiedź. Istnieje wiele odpowiedzi w tej samej starej, które nadal działają, aby przejść do preferencji i z zakładki lokalizacji. :)
Nitin Gohel
124

Czyszczę pochodne dane na tyle często, że mam na to alias. Może naprawić problemy z kompilacją. Mam następujące w /Users/Myusername/.bash_profile

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

Następnie w terminalu wpisuję purgeallbuilds i wszystkie podfoldery DerivedData są usuwane.

William Jockusch
źródło
24
Możesz usunąć sam folder DerivedData. To zostanie po prostu ponownie utworzone.
Nick Lockwood
1
Kompilacja natychmiast kończy się niepowodzeniem w Xcode 8 po usunięciu tego folderu. Po dodaniu go znów wszystko działało.
Tim
To bardzo przydatna wskazówka. Zwykle brakuje mi miejsca co pół roku i trudno jest sobie przypomnieć, które foldery powinny zostać usunięte. Alias ​​jest zdecydowanie wygodny.
Oliver Zhang
35

AKTUALIZACJA XCODE 10

Na zakładce:

  1. Kliknij Xcode
  2. Preferencje
  3. Lokalizacje -> Dane pochodne

Możesz uzyskać dostęp do wszystkich danych pochodnych i wyczyścić je, usuwając je.

Umit Kaya
źródło
Sekcja Dane pochodne określa tylko ścieżkę danych pochodnych. Nigdzie nie widzę, aby je wyświetlić i usunąć. Dlaczego nie zrobić tego po prostu z wiersza poleceń?
AlxVallejo
2
@AlxVallejo Na końcu adresu ścieżki zobaczysz ikonę, która przeniesie Cię do folderu. Naciśnij go i usuń folder, a zostanie on ponownie utworzony.
Umit Kaya,
34

AKTUALIZACJA XCODE 7.2

(Działa również dla 7.1.1)

  1. Kliknij opcję Okno, a następnie Projekty, a następnie usuń dane pochodne .

Lubię to:

wprowadź opis zdjęcia tutaj

A następnie usuń go tutaj:

wprowadź opis zdjęcia tutaj


Mam nadzieję, że to pomaga!

Lukesivi
źródło
2
Umożliwi to ręczne usuwanie go pojedynczo, ale środki używane w innych postach służą do jednoczesnego usuwania zawartości folderu DerivedData
XIII
23
 $ du -h -d=1 ~/Library/Developer/Xcode/*

pokazuje, że co najmniej dwa foldery są ogromne:

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

Usuń elementy z folderów:

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

i niektóre w:

 open ~/Library/Developer/Xcode/iOS\ DeviceSupport/
ohho
źródło
2
cholera ... usuwanie plików ze starszych wersji iOS w folderze obsługi urządzeń uwolnionym 28
GB
17

Właśnie utworzyłem repozytorium github z małym skryptem, który tworzy dysk RAM. Jeśli wskażesz folder DerivedData /Volumes/ramdisk, po wysunięciu dysku wszystkie pliki znikną.

Przyspiesza kompilację, eliminuje również ten problem

repozytorium xc-launch

Najlepiej uruchomić przy użyciu DTerm

Diego Freniche
źródło
11

XCode 8: Aby usunąć dane pochodne dla bieżącego projektu:

Kliknij menu Produkt

Przytrzymaj klawisz Opcja

Kliknij opcję Wyczyść folder budowania

Steve Yost
źródło
Po przytrzymaniu klawisza opcji opcja Czysta kompilacja jest wyszarzona. : /
AlxVallejo
4

AKTUALIZACJA XCODE 10

Kliknij, aby Xcode na pasku stanu, a następnie wybierz Preferencje

W oknie PopUp wybierz Lokalizacje przed ostatnim segmentem

Możesz przejść do folderu Dane pochodne za pomocą małej prawej ikony

wprowadź opis zdjęcia tutaj

Ali Ihsan URAL
źródło
2

~ / Library / Developer / Xcode / DerivedData

Ansal Antony
źródło
Domyślnie tak; Używam, ~/tmp/DerivedDataaby łatwiej dostać się do wbudowanych plików / pakietów.
Droppy,
1

tak, bezpieczne do usunięcia, mój skrypt wyszukuje i nukuje każdą znalezioną instancję, łatwo modyfikując ją do katalogu lokalnego

#!/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
μολὼν.λαβέ
źródło
0

Wystąpił ten błąd, ponieważ Int był int w jednym pliku. Tak głupia.

rajeswari ratala
źródło
-1

Powiedziałbym, że jest bezpieczny - ja często usunąć zawartość folderu dla wielu rodzajów projektów iOS ten sposób . I nie miałem żadnych problemów z kompilacjami ani przesyłaniem do App Store. Procedura usuwa dane pochodne i czyści zasoby buforowane projektu, zarówno dla Xcode 5, jak i 6.

Czasami po prostu wywołanie rm -rf w katalogu danych pochodnych pozostawia jeden lub dwa pozostające pliki, ale mój skrypt zapętla się, dopóki wszystkie pliki nie zostaną usunięte.

Sheamus
źródło
Ugh. Literówka Miałem na myśli „zapewnienie”
jasne
Ach, łączę się ze skryptem, który podałem w odpowiedzi na inne pytanie. W ten sposób, jeśli kiedykolwiek chcę zaktualizować skrypt, muszę edytować tylko w jednym miejscu. Czy możesz skorzystać z linku?
Sheamus
Teraz widzę kod. Nie widziałem wcześniej linku (jeśli był) dzięki.
jasne
-1

Zawartość „danych pochodnych” jest generowana w czasie kompilacji. Możesz go bezpiecznie usunąć. Wykonaj poniższe kroki, aby usunąć „Dane pochodne”:

  1. Wybierz Xcode -> Preferencje.

Krok 1

  1. Otworzy się okno podręczne. Wybierz zakładkę „ Lokalizacje ”. W zakładce Lokalizacje możesz zobaczyć „ Dane pochodne ” Kliknij ikonę strzałki obok ścieżki.

Krok 2

  1. Otworzy się folder zawierający „Dane pochodne” Kliknij prawym przyciskiem myszy i usuń folder.

Krok 3

Jayprakash Dubey
źródło