Como posso excluir com segurança meu diretório ~ / Library / Developer / Xcode / DerivedData?

90

Gostaria de remover dados antigos (substituíveis?) E o conteúdo de DerivedData parece um candidato provável. Como seu nome é DerivedData , presumo que seja uma informação que, se ausente, seria gerada durante uma fase de construção e, se presente, seria usada durante essa mesma fase. Parece lógico, então, que eu pudesse excluir qualquer dado de projeto antigo sem medo e se eu deveria construir aquele projeto antigo, a primeira vez levaria mais tempo do que o normal, senão teria para recriar todos esses dados derivados.

Estou enganado aqui?

fuligem
fonte
8
Esteja MUITO CIENTE de que, como Joshua explica, essa pasta sangrenta contém "dados dSYM para depuração posterior. ... não exclua se quiser depurar versões implantadas de seu aplicativo"
Fattie,
Talvez eu deva usar todos os truques de marcação do SO, além da ênfase, para chamar esse ponto em minha resposta. :-D Block-quoted-star-slash-comment-code-bold-italic-bulleted-list, etc.
Joshua Nozzi
17
@JoeBlow na verdade, como Joshua explica, é o diretório Archives que contém "dados dSYM para depuração posterior". O diretório Archives é irmão do diretório DerivedData , o que significa que está no mesmo nível, abaixo ~/Library/Developer/Xcode, que o DerivedData , então "aquela pasta sangrenta" (DerivedData) NÃO contém os dados dSYM e seu conteúdo pode ser excluído com segurança.
mluisbrown
4
Sempre que lanço uma nova versão, copio o .xcarchive do Xcode em meu repositório git e o mantenho sob controle de versão - esta é uma boa maneira de sempre poder obter .dSYMs antigos sem depender dos diretórios Xcode de uma máquina em particular.
Bill,

Respostas:

123

A pasta Derived Data contém todas as informações intermediárias de build, destinos de depuração e liberação, bem como o índice do seu projeto. É útil excluir os dados derivados quando você tem problemas estranhos de índice (o autocompletar código não está funcionando direito, reindexação constante ou mesmo apenas um projeto lento). Excluir a pasta inteira destrói essas informações para todos os projetos que o Xcode 4 conhece.

A pasta Arquivos (um irmão de Dados Derivados) contém a forma arquivada de seus destinos. Ou seja, uma versão de lançamento, bem como dados dSYM para depuração posterior. Isso você não deve excluir se quiser depurar versões implementadas de seu aplicativo.

Você pode eliminar os dados derivados de um determinado projeto abrindo a janela do Organizer e selecionando a guia Projetos. Selecione o projeto desejado e clique no botão Excluir próximo ao caminho de Dados Derivados. Isso é mais um "golpe cirúrgico" para projetos problemáticos.

Joshua Nozzi
fonte
1
Certo. Vá para a linha de comando e digite "man rm" - go nuts. :-)
Joshua Nozzi
9
Suspiro. Eu sei rm. Eu queria encontrar uma maneira de resolver a pasta conectada ao projeto, por exemplo ~/Library/Developer/Xcode/DerivedData/MyProject-hghjhjhkjh/. A maneira mais fácil que encontrei é definir a pasta DerivedData relativa à pasta do projeto, através das preferências do XCode.
asgoth,
4
Apenas uma nota rápida: No XCode 6.x , projectsestão em sua própria janela (não no Organizer).
Olie
1
Gosto do seu jargão militar XD
Josh
1
Muitas ferramentas de distribuição novas (AppCenter, HockeyApp, Crashlytics, etc) pedem que você entregue os arquivos dSYM para que você não tenha que armazená-los sozinho.
Mel,
38

O conteúdo de 'Dados derivados' é gerado durante o tempo de construção. Você pode excluí-lo com segurança. Siga as etapas abaixo para excluir 'Dados derivados':

  1. Selecione Xcode -> Preferências ..

Passo 1

  1. Isso abrirá uma janela pop-up. Selecione a guia ' Locais '. Na subguia Locais, você pode ver ' Dados Derivados ' Clique no ícone de seta próximo ao caminho.

Passo 2

  1. Isso abrirá uma pasta contendo 'Dados Derivados', clique com o botão direito e apague a pasta.

etapa 3

Jayprakash Dubey
fonte
Então, quando meu aplicativo está no simulador, mas não está sendo executado a partir do código e se eu excluir e executar novamente a partir do código, isso causará algum problema?
Manthan
@Manthan: Não, isso não criará nenhum problema.
Jayprakash Dubey
30

Sim, esses dados são gerados durante o tempo de construção e você pode excluí-los se quiser, não é um problema.

Ele será recriado quando você construir novamente.

amrit_neo
fonte