Erro do compilador Xcode versão 4.6.2 (4H1003)


88

Acabei de atualizar para o Xcode versão 4.6.2 (4H10003) e tentei executar um projeto de aplicativo que funcionava anteriormente no simulador e recebi o seguinte erro e a compilação falhou.

Arquivo PCH criado a partir de um branch diferente ((clang-425.0.27)) do compilador ((clang-425.0.28))

O que deu errado e como pode ser consertado?


Tentei fazer um Produto -> Limpar e excluir o aplicativo criado anteriormente do simulador. Nenhum funcionou.
OscarTheGrouch

2
"Limpar pasta de compilação" não resolveu meu problema ao compilar para um dispositivo (tentei várias vezes). Tive de "limpar a pasta de construção", construir para o simulador e, em seguida, construir para o dispositivo que estava resolvido.
DBD de

Respostas:


183

Faça uma limpeza do projeto; segure Option para limpar toda a pasta de compilação e intermediários. Você pode ter que fechar o Xcode e jogar fora todo o conteúdo da pasta DerivedData manualmente no Finder, conforme descrevo aqui: Como esvaziar caches e limpar todos os destinos Xcode 4


Sim, uma limpeza funcionou para mim também. O erro está apenas dizendo que os cabeçalhos pré-compilados foram construídos com uma versão diferente e não são compatíveis com a versão mais recente do compilador.
zingle-dingle

Se isso não aconteceu com você nas atualizações anteriores do Xcode, você teve sorte. Aconteceu comigo. Você se acostuma depois de um tempo ...
matt

Isso funcionou para mim depois de fazer 'Limpar pasta de compilação' com a opção pressionada. Obrigado!
Lucas,

1
Isso funcionou para mim, obrigado ... Eu não sabia que segurar a opção faz um tipo diferente de limpeza.
OscarTheGrouch

Isso só funciona para construir dentro do Xcode. Se você está construindo a partir da linha de comando, veja a postagem de Rodrigo Lima abaixo.
Jeff

21

Vá para o do seu projeto Build Settings, encontre uma configuração chamada Precompiled Headers Cache Pathe exclua essa pasta


Somente esta ação me ajudou com o problema mencionado. Obrigado!
Laranja,

13

Faça uma limpeza usando command+shift+ke execute o projeto existente novamente.

insira a descrição da imagem aqui


9

Das notas de versão do XCode 4.6.2

Problemas Conhecidos

Construção

Ao construir um produto criado anteriormente com o Xcode 4.6.1 ou anterior, a construção falha com um erro semelhante a este:

Arquivo PCH criado a partir de um branch diferente ((clang-425.0.27)) do compilador ((clang-425.0.28))

Para resolver esse problema, escolha Produto> Limpar antes de construir seu produto. 13663167

Produto de desempenho> Trabalhos limpos


1
Sim, era um problema com as versões anteriores, mas é reconhecido que vale a pena ser mencionado nas notas de lançamento apenas agora. Além disso, eles não fornecem solução para pessoas que não usam o Xcode como IDE, @sycx fornece (desmarque o caminho do cache de cabeçalhos pré-compilados).
A-Live de

9

Eu tentei tudo acima e funciona bem na IU do Xcode, mas ainda estava falhando para mim quando executei o xcodebuild na linha de comando .

Isso era devido às dependências de outras bibliotecas e seus cabeçalhos pré-compilados. Ao executar a partir da linha de comando, parece que xcodebuild armazena / lê cabeçalhos pré-compilados aqui:

/var/folders/v0/ztxy9kls7sv05dpmvjgg_xwr0000gn/C/com.apple.Xcode.501/SharedPrecompiledHeaders

Depois de limpar essa pasta, o xcodebuild foi bem-sucedido.


2
A localização desta pasta será diferente para cada pessoa, então uma maneira rápida de localizar a pasta certa para limpar é usar find + grep ... sudo find / var / folders | grep SharedPrecompiled
Greg Combs

1
Eu tive o mesmo problema. A execução da linha de comando falhou, embora eu pudesse construir de dentro do Xcode. Acabei executando: sudo find /private/var/folders -name SharedPrecompiledHeaderse depois esvaziei os diretórios resultantes. Funcionou como um encanto.
Jeff

Se eu pudesse dar a isso um voto positivo adicional, eu o faria. Definitivamente, a limpeza não parece funcionar para mim ao compilar a partir da linha de comando. Eu esperava que sim, mas saber onde procurar os cabeçalhos pré-compilados foi muito útil.
John Bowers

4

Especialmente se você compilar a partir da linha de comando ou tiver um script de compilação, limpar o destino xcode não é suficiente. Você tem que deletar esta pasta.

A localização exata do cabeçalho pré-compilado pode ser encontrada no projeto, parte do caminho da pasta é aleatório (eu acho), esp após /var/folders/xx..xxx/C.

Target -> build settings => "Build locations" -> Precompiled headers cached path

Execute o Terminal e vá para esta pasta e exclua (use o comando),

#rm -fr SharedPrecompiledHeaders

insira a descrição da imagem aqui


Ótima resposta! Mas eu não tinha essa pasta naquele local (mesmo no prompt do Terminal usando ls -lAhF). No entanto, fechar o Xcode e depois excluir a pasta com.apple.Xcode.501 funcionou perfeitamente.
RedYeti

A localização exata do cabeçalho pré-compilado pode ser encontrada no projeto, parte do caminho da pasta é aleatório (eu acho), esp após /var/folders/xx..xxx/C.
karim

Desculpe - não fui claro. Sim o caminho sempre mudará abaixo de / var / folders / * mas a pasta que não estava lá era "SharedPrecompiledHeaders" - o que me surpreendeu. Mas remover a pasta pai que mencionei deve funcionar sem problemas.
RedYeti

4

Eu tive que excluir manualmente o ~/Library/Developer/Xcode/DerivedData/ Clean não funcionou para mim.


0

use "command + shift + k" para limpar seu projeto, então você ficará bem.


0

Limpe seu projeto e execute

Produto-> Limpe e, em seguida, execute.

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.