AskCleanAskClean

Poista Xcode kokonaan Macista menettämättä projekteja tai dSYM-tiedostoja

AskClean-tiimi · Päivitetty 2026-09-01

Varmuuskopioi lähdeprojektit ja säilytä julkaistujen buildien tutkimiseen tarvittavat Archives- ja dSYM-tiedostot ennen Xcoden täydellistä poistamista. Siirrä sitten sovellus Roskakoriin ja tarkista DerivedData, simulaattorit, DeviceSupport ja komentorivityökalut erikseen.

Poista Xcode kokonaan Macista menettämättä projekteja tai dSYM-tiedostoja
Varmuuskopioi lähdeprojektit ja säilytä julkaistujen buildien tutkimiseen tarvittavat Archives- ja dSYM-tiedostot ennen Xcoden täydellistä poistamista. Siirrä sitten sovellus Roskakoriin ja tarkista DerivedData, simulaattorit, DeviceSupport ja komentorivityökalut erikseen.

Suojaa tiedot, joita ei voi luoda uudelleen, ennen asennuksen poistoa

Projektikansiot eivät ole Xcoden jäänteitä. Suojaa repositoryt, commitoimattomat tiedostot, paikalliset paketit ja resurssit. Säilytä App Storessa, TestFlightissa tai asiakkailla käytössä olevien versioiden Archives/dSYM sekä tarpeellinen Simulator-tila.

  1. Sulje Xcode ensin. DerivedDatan poistaminen Xcoden ollessa käynnissä voi sekoittaa sen indeksoijan, eivätkä Xcoden avoinna pitämät tiedostot välttämättä poistu siististi.
  2. Etsi kansio: avaa Xcodessa Settings > Locations ja klikkaa DerivedData-polun vieressä olevaa pientä nuolta nähdäksesi sen Finderissa. Tai paina Finderissa Komento-Vaihto-G ja syötä suoraan ~/Library/Developer/Xcode/DerivedData.
  3. Lajittele projektialikansiot koon mukaan, valitse ne, joista haluat eroon (tai Komento-A kaikille), ja siirrä ne Roskakoriin. Roskakori ensin on turvallisempi tapa — voit palauttaa välittömästi, jos muutat mielesi.
  4. Terminaalista vaihtoehtoisesti: rm -rf ~/Library/Developer/Xcode/DerivedData poistaa kaiken kerralla. Se on Finderia nopeampi hyvin suurille kansioille, mutta lue alla oleva huomautus ennen käyttöä.
  5. Avaa Xcode uudelleen ja käännä. Odota, että kunkin projektin ensimmäinen käännös kestää selvästi pidempään ja että ”Indexing” pyörii toimintopalkissa hetken — molemmat ovat kertaluonteisia kustannuksia.

Ole varovainen rm -rf:n kanssa: se ohittaa Roskakorin ja poistaa pysyvästi, ilman peruutusta. Kirjoita polku täsmälleen oikein, älä koskaan aja sitä sudolla tähän tehtävään — ja jos Terminaali ei ole mukavuusaluettasi, Finder-reitti tekee saman työn palautettavasti.

Poista DerivedData

Tapoja on kolme, ja ne päätyvät samaan lopputulokseen. Xcoden Clean Build Folder -komento (Product > Clean Build Folder, tai Komento-Vaihto-K) tyhjentää vain parhaillaan avoinna olevan projektin käännöstuotteet — hyödyllinen oudon käännösvirheen korjaamiseen, mutta levytilamittari tuskin värähtää. Todellisen tilan vapauttamiseksi poista itse DerivedData-kansiot.

Projektikohtainen poisto on kirurginen vaihtoehto: säilytä DerivedData niille kahdelle tai kolmelle projektille, joita käännät päivittäin, ja poista kansiot kaikelta muulta. Koko kansion poistaminen on nopea vaihtoehto, ja sekin on ihan hyvä — maksat vain täyden uudelleenkäännöksen hinnan kaikista projekteista kerralla.

Poista sovellus samalla menetelmällä, jolla se asennettiin

Sulje Xcode ja Simulator ja siirrä oikea Xcode.app Finderissa Roskakoriin. Älä poista /Library/Developer/CommandLineTools-hakemistoa automaattisesti; Git, Homebrew, clang ja build-skriptit voivat yhä käyttää sitä.

Pakettienhallintojen välimuistit (SwiftPM, CocoaPods, npm, Homebrew)

Pakettienhallinnat säilyttävät jokaisen koskaan lataamansa riippuvuuden, jotta tulevat asennukset olisivat nopeita. Se on hyvää insinöörityötä ja huonoa levyhygieniaa: välimuistit vain kasvavat, ja muutaman projektivuoden nähneellä koneella niihin kertyy huomaamatta 10–20 Gt. Kaikki niistä on turvallista tyhjentää — pahimmassa tapauksessa seuraava asennus lataa paketit uudelleen.

Swift Package Manager tallentaa lataamansa paketit polkuun ~/Library/Caches/org.swift.swiftpm, ja kunkin projektin ratkaistut checkoutit sijaitsevat myös sen DerivedData-kansiossa — joten DerivedDatan tyhjentäminen siivoaa jo ne. Jaetun välimuistin voit poistaa Finderista tai rm -rf:llä kyseiseen polkuun.

Tarkista kaikki ennen Roskakorin tyhjentämistä

Tarkista Applications, prosessit ja xcode-select -p uudelleen. Varmista projektien, tarpeellisten Archives/dSYM-tiedostojen ja Simulator-datan säilyminen ennen Roskakorin tyhjentämistä. System Data voi päivittyä viiveellä.

Täydellisen asennuksen poiston turvallisuuskartta

Poista Xcode turvallisesti ja arvioi uudelleen luotavat välimuistit, Archives, DeviceSupport, Simulator-tiedot ja Command Line Tools erikseen.

PäätösTarkistus- tai toimintapaikkaSeuraus ja varmistus
Suojaa tiedot, joita ei voi luoda uudelleen, ennen asennuksen poistoaProjects / Xcode Organizer / ArchivesProjektikansiot eivät ole Xcoden jäänteitä. Suojaa repositoryt, commitoimattomat tiedostot, paikalliset paketit ja resurssit. Säilytä App Storessa, TestFlightissa tai asiakkailla käytössä olevien versioiden Archives/dSYM sekä tarpeellinen Simulator-tila.
Poista sovellus samalla menetelmällä, jolla se asennettiin/Applications/Xcode.app / FinderSulje Xcode ja Simulator ja siirrä oikea Xcode.app Finderissa Roskakoriin. Älä poista /Library/Developer/CommandLineTools-hakemistoa automaattisesti; Git, Homebrew, clang ja build-skriptit voivat yhä käyttää sitä.
Tarkista kaikki ennen Roskakorin tyhjentämistäxcode-select -p / Activity MonitorTarkista Applications, prosessit ja xcode-select -p uudelleen. Varmista projektien, tarpeellisten Archives/dSYM-tiedostojen ja Simulator-datan säilyminen ennen Roskakorin tyhjentämistä. System Data voi päivittyä viiveellä.

UKK

Voinko poistaa koko ~/Library/Developer-hakemiston?

Et. Se sisältää uudelleen luotavan DerivedDatan lisäksi Archives/dSYM-, DeviceSupport-, runtime- ja Simulator-tilaa; arvioi jokainen luokka erikseen.

Onko DerivedDatan poistaminen turvallista?

Kyllä — se on yksi turvallisimmista suurista poistoista Macilla. DerivedData sisältää vain tiedostoja, jotka Xcode generoi lähteestäsi: käännöstuotteita, moduulivälimuisteja, indeksejä ja lokeja. Koodisi, projektitiedostosi ja git-historiasi asuvat muualla, eikä niihin kosketa koskaan. Ainoa seuraus on, että kunkin projektin seuraava käännös on täysi uudelleenkäännös ja indeksointi ajetaan uudelleen.

Kuinka usein DerivedData kannattaa tyhjentää?

Pakollista aikataulua ei ole — tyhjennä se, kun se on kyllin suuri merkitäkseen, mikä useimmille aktiivisille kehittäjille tarkoittaa kuukauden tai parin välein. Kaksi hetkeä oikeuttaa sen aina: kun tarvitset levytilaa nopeasti, ja kun projekti näyttää selittämättömiä käännösvirheitä tai vanhentunutta koodintäydennystä — silloin DerivedDatan pyyhkiminen on vakiintunut ensimmäinen korjaus.

Lähteet

Aiheeseen liittyvät täydellisen poistamisen oppaat