Como esvaziar caches e limpar todos os destinos Xcode 4 e posterior


238

Jonathan sugere aqui: Xcode Inclui arquivos .xib que foram excluídos! que limpar todos os destinos e esvaziar os caches corrigirá o problema com o Xcode, incluindo arquivos .xib excluídos, mas não consigo encontrar uma maneira de esvaziar o cache no Xcode 4.

Como fazer isso no Xcode 4?


Aqui está minha [solução de script de shell] [1], que exclui os dados derivados, para o xCode 5 e 6. [1]: stackoverflow.com/a/27977848/1231948
Sheamus

Respostas:


514

Command-Option-Shift-K para limpar a pasta de compilação. Melhor ainda, saia do Xcode e limpe ~ / Library / Developer / Xcode / DerivedData manualmente. Remova todo o seu conteúdo, porque há um erro no qual o Xcode executa uma versão antiga do seu projeto que está lá em algum lugar. (O Xcode 4.2 mostrará a pasta Dados Derivados: escolha Janela> Organizador e mude para a guia Projetos. Clique na seta à direita à direita do nome da pasta Dados Derivados.)

No simulador, escolha Simulador para iOS> Redefinir conteúdo e configurações.

Finalmente, para completar, você pode excluir o conteúdo de / var / folders ; algum cache acontece lá também.

AVISO: A exclusão de / var / folders pode causar problemas, e talvez você precise reparar ou reinstalar o sistema operacional depois de fazer isso.

EDIT: Acabei de saber que, se você tem medo de lidar com / var / folders /, pode usar o seguinte comando no Terminal para excluir de maneira mais direcionada:

rm -rf "$(getconf DARWIN_USER_CACHE_DIR)/org.llvm.clang/ModuleCache"

EDIT: Para certos problemas relacionados ao Swift, achei útil excluir ~ / Library / Caches / com.apple.dt.Xcode . Você perde muito quando faz isso, como suas cópias sobressalentes dos conjuntos de documentos da documentação baixada, mas pode valer a pena.


6
Bom, limpando o caminho: Library / Developer / Xcode / DerivedData + redefinir o conteúdo e a configuração do simulador funciona!
21811 Tiempo

10
Path parece estar em meu diretório home (nota til): ~ / Library / Developer / Xcode / DerivedData Talvez isso era óbvio para os outros, mas no caso de alguém tem o problema ...
Victor Van Hee

37
Hehe, sendo um übern00b, excluí o / var / db, onde encontrei algo que veio do Xcode / meu projeto. Isso me custou cinco horas de diário destruído no sistema de arquivos, reparo e reinstalação do Lion, etc. Esteja avisado! :-)
Jonas Byström 23/11

4
@ Jonas, senti-me compelido a adicionar um aviso ao conselho "delete / var / folders". Não é para os não iniciados!
LearnCocos2D

7
Não execute rm-rf / var / pastas com sudo ou você vai acabar reparar como a mim mesmo :)
Josip B.

68

Command-Option-Shift-K deve fazê-lo. Como alternativa, vá ao menu do produto, pressione a tecla Opções, agora a opção "Limpar" será alterada para "Limpar pasta de compilação ..." e selecione essa opção.


Não, que pena .. Acabei de alterar e renomear um arquivo xib e limpar o aplicativo como você disse, mas ele ainda carrega bem, sem erros.
Tieme 4/11

2
Uau, nunca é novidade sobre esse truque das teclas alt para os menus do Mac OS X !!! Isso realmente define o significado de "Alt" ernate.
Trusktr 01/08/19

19

Além de fazer o seguinte, você pode enfrentar esse problema se os arquivos do Storyboard do seu aplicativo estiverem localizados. Primeiro, faça cada um destes:

  • Construção Limpa
  • Redefinir Simulador
  • Reinicie o Xcode
  • Exclua sua DerivedDatapasta em ~ / Library / Developer / Xcode / DerivedData
  • Reinicialização do computador

O que finalmente funcionou para mim foi gerar novamente os arquivos de localização do storyboard e excluir a localização em inglês (o que era desnecessário porque o Local da Base é o inglês). Para recarregar suas seqüências de storyboard, consulte esta resposta no StackOverflow .

Eu havia notado que as partes não textuais do meu Storyboard estavam sendo atualizadas, mas não o texto localizado. Se você tiver uma localização no seu aplicativo, recomendo que verifique se suas localizações estão atualizadas (mesmo que sejam .stringsarquivos).


2
A exclusão do conteúdo (não de toda a pasta) de / var / folders fez isso por mim! Se você estiver procurando por /var/folders...Escolha Ir para pasta no menu Ir do Finder e digite / var / como o local da pasta.
31414 Patricia

+1 na instrução / var / folders ... limpar e excluir DerivedData funcionou parcialmente, mas esse foi o
ideal

1
1. Compilação limpa 2. Redefinir simulador 3. Reinicie o Xcode Isso resolveu meu problema.
Alan Dong

AVISO! Lembre-se de que a exclusão do conteúdo /var/folders/pode causar problemas sérios e resultar na reinstalação completa do OSx no console de recuperação!
Magnus W

18

Encontrei outra maneira, além de comando + opção + shift + K. No XCode 4.2, há um organizador que pode ser aberto no ícone superior direito. Você pode limpar todos os arquivos e as opções salvas do projeto a partir daí. Isso ajudou minha situação (eu estava vendo arquivos removidos antigos no mainBundle).


3
Sim, isso é uma maneira mais fácil de limpar do que limpando manualmente ~ / Library / Developer / Xcode / DerivedData
#

10

Puxei os cabelos da minha cabeça porque pensei que tinha o mesmo problema. Ao criar o aplicativo, não obtive o mesmo resultado no meu iPhone e no simulador.

O problema era que, de alguma forma, eu fiz uma versão localizada do arquivo MainStoryboard.storyboard. Então, quando eu executei o aplicativo no meu telefone, ele mostrou a versão dinamarquesa ... e o simulador mostrou a versão em inglês.

Sim, eu sou novo! :)


2
Eu tive problemas semelhantes. Comando-opção-shift-K foi inútil. Removido ... DerivedData, sem solução. Acabou que alterar o XIB de nível superior apenas altera a versão em inglês e eu estava testando com a versão em holandês do XIB. Sigh ...
fishinear perto de 23/02/12

1
Além disso, saiba que existem maneiras de localizar seu aplicativo em que arquivos de texto separados são criados para cada idioma. Nesses casos, alterar o .xib não faz nada.
precisa saber é o seguinte

7

Para excluir todos os dados derivados e o cache do módulo, /var/foldersuse este pequeno script ruby .

derivedDataFolder = Dir.glob(Dir.home + "/Library/Developer/Xcode/DerivedData/*")
moduleCache = Dir.glob("/var/folders/**/com.apple.DeveloperTools*")
FileUtils.rm_rf derivedDataFolder + moduleCache

Isso acabou de resolver um fatal error: malformed or corrupted AST file: 'Unable to load module "/var/folders/erro para mim.


1
O bug aparente que causa "erro fatal: arquivo AST malformado ou corrompido: 'Não foi possível carregar o módulo" e a falha da solução suave sugerida pelo Xcode, ainda está ocorrendo no Xcode 6.1. E a solução para fechar o Xcode e limpar manualmente ~ / Library / Developer / Xcode / DerivedData manualmente ainda funciona. Eu não precisava limpar tudo lá dentro; apenas duas subpastas: ModuleCache e a subpasta cujo nome é relevante para o projeto do problema.
Jerry Krinock

5

Eu tive alguns problemas com o Xcode 5.1, quando abri a janela do documento.

Não tenho certeza da causa disso, porque também estava atualizando os documentos, enquanto abria a janela.

Bem, no Xcode 5, o diretório modules agora reside na pasta de dados derivados, que por razões óbvias não excluí. Excluí o conteúdo de ~ / Library / Developer / Xcode / DerivedData / ModuleCache e o ~ / Library / Preferences / com.apple.Xcode.plist e tudo parece funcionar depois de reiniciar o Xcode.


1

Ao usar um "Modelo de dados", no inspetor há opções para gerar classes, para mim esse foi o caso, pois já havia uma classe com o nome existente.

Codegen: resolveu para mim.

insira a descrição da imagem aqui


1

Meus "DerivedData" com o Xcode 10.2 e o Mojave estavam aqui:

MacHD / Usuários / [MyUser] / Biblioteca / Desenvolvedor / Xcode


0

Você precisa ter cuidado com o arquivo xib. Eu tentei todas as opções acima e nada funcionou para mim. Eu estava usando UIButtons personalizados definidos no xib e percebi que isso poderia estar relacionado ao fato de eu ter atribuído atributos lá que não estavam sendo alterados programaticamente. Se você definiu imagens ou texto, remova-os. Quando fiz isso, minhas alterações programáticas começaram a entrar em vigor.


0

Aqui está minha solução de script de shell , que exclui dados derivados e limpa os ativos em cache de um projeto, para o Xcode 4, 5 e 6.

Às vezes, simplesmente chamar rm -rf no diretório Derived Data deixa um ou mais arquivos restantes, mas meu script faz um loop até que todos os arquivos sejam excluídos.


0

Eu tentei quase tudo, mas não pude ajudar, o que me ajudou foi desativar o SIP (System Integration Protection) n funciona, não sei o que acontece quando e como, mas o arquivo do sistema fica confuso em algum lugar e causa isso ... embora possa haver riscos para desativar isso obviamente

aqui está como

1.Ligue o seu Mac e mantenha pressionadas as teclas [command] + [R] para acessar a partição de recuperação.

2. Na Partição de recuperação, clique em Utilitários na barra de menus e selecione Terminal.

3. Digite o seguinte comando no Terminal e pressione Enter para executá-lo: csrutil disable

4.Quando o comando for executado, saia do Terminal e reinicie o Mac. Quando você efetua login novamente no OS X, o SIP será desativado.


1
Parece realmente arriscado. O que o SIP faz?
Tieme

Proteção da integridade do sistema protege arquivos de sistema e diretórios que são sinalizadas para protection.basically acrescenta mais segurança para o seu sistema, limitando até mesmo o poder do comando sudo
Castro Zwelithini
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.