Esta questão evoluiu nas últimas semanas para cobrir questões mais gerais com xcode4 (e projetos de atualização de formas mais antigas xcodes).
No entanto, muitos dos problemas podem ser resolvidos seguindo o mesmo conjunto de instruções.
Se você tiver algum dos seguintes problemas, tente os métodos na resposta aceita:
- Xcode 4 falha ao arquivar um aplicativo
- Xcode 4 cria um arquivo inutilizável
- Xcode 4 não cria um .ipa
- O Xcode 4 falha ao compilar devido a erros do pré-processador
- Xcode 4 não consegue encontrar cabeçalhos
- O código completo do Xcode 4 não está funcionando
- Dependências do projeto não compilam
- Adicionar uma dependência causa qualquer um dos problemas acima
Questão Original
Título: "arquivo de problema léxico ou pré-processador não encontrado" no Xcode 4
Eu tenho um projeto no Xcode 4 que irá construir bem e rodar no dispositivo e no simulador, mas ao tentar arquivar erros ao procurar por arquivos de cabeçalhos associados a uma biblioteca estática:
In file included from /Volumes/Development/Path/LBProject/LBProject/LBProject-Prefix.pch:15:
In file included from /Volumes/Development/Path/LBProject/LBFDefines.h:23:
In file included from /Volumes/Development/Path/LBProject/Classes/LBProjectAppDelegate.h:11:
In file included from /Volumes/Development/Path/LBProject/LBProject/../FKNDirectory/FKNDirectoryManager.h:10:
/Volumes/Development/Path/LBProject/LBProject/../FKNDirectory/FKNDataModel.h:11:9: fatal error: 'Merchant.h' file not found [1]
#import "Merchant.h"
^
1 error generated.
Xcode dá o erro
lexical or preprocessor issue file not found
Muito pesquisando no Google mostrou que muitas pessoas estão tendo esse problema, mas nenhuma solução. Qualquer um conseguiu uma correção ou mesmo uma pista.
Atualizar: Os user header
caminhos de pesquisa são definidos ${BUILT_PRODUCTS_DIR}
em todas as configurações. Ele constrói bem usando qualquer configuração, exceto durante o arquivamento.
Atualização 2: Merchant.h
é uma classe de dados principais gerada automaticamente e, portanto, dentro do .xcdatamodeld
pacote; no entanto, os cabeçalhos são todos copiados para o diretório de cabeçalhos públicos quando a biblioteca é construída.
fonte
Eu tive o mesmo problema no XCode 4: "Problema léxico ou pré-processador MyFile.h não encontrado". No entanto, MyFile.m não era uma biblioteca estática, apenas uma classe padrão. E MyFile.m e MyFile.h foram incluídos corretamente e indexados no projeto.
Então ... Saí do XCode e do Simulador, reiniciei-os e o problema desapareceu.
fonte
Descobri que o problema foi embora quando alterei a configuração de compilação de destino "verificar todos os arquivos de origem para inclusões" de não para sim.
fonte
Consegui resolver esse problema sem nenhuma alteração nas configurações de compilação, simplesmente copiando os arquivos .h para o diretório do Projeto no localizador. Eu NÃO os adicionei ao projeto. Apenas tê-los no diretório do sistema de arquivos do projeto parecia ser suficiente para permitir que o link implícito do Xcode funcionasse corretamente. Mais detalhes aqui .
fonte
Eu tive um problema estranho como este. Alterar "Verificar todos os arquivos de recursos ..." para Sim não ajudou. Dei uma olhada no Framework Search Paths e percebi que
Parecia certo, mas ainda estava falhando. Em seguida, tentei reorganizar a ordem de 2 e 3 e de repente tudo ficou bem. Não tenho certeza de por que foi esse hickup, mas queria adicioná-lo à lista de coisas para tentar, caso ajude outra pessoa.
fonte
Minha solução foi mudar meu
para
e tudo começou a funcionar novamente. O que era incomum era que ele havia parado de funcionar repentinamente depois de construir algumas vezes.
fonte
O problema se resolveu quando eu configurei
Build Settings-> Project-> Search Paths to Yes
fonte
Eu tive o mesmo - 2 metas em meu projeto ( Projeto e Teste de Projeto
GHUnit
). Quando meu esquema foi configurado para Projeto , a importação de<GHUnitIOS/GHUnit.h>
era um problema de “arquivo de problema léxico ou pré-processador não encontrado” . Mas quando eu defini como um esquema ProjectTest , tudo estava OK. Então, eu adicioneiGHUnitIOS.framework
no Project também.fonte
Parece que seus caminhos de pesquisa de cabeçalho estão incorretos, não foram configurados corretamente nas configurações de compilação para o esquema ativo. Verifique-os e atualize sua pergunta com a configuração atual.
fonte
Estou tendo problemas semelhantes no simulador, mas não no dispositivo e meus campos de caminho de pesquisa de cabeçalho estão vazios (parece ser o padrão). Mas a alteração dos espaços de trabalho parece ter resolvido o problema. Talvez você possa tentar criar um novo espaço de trabalho, adicionar seu projeto a ele e ver se isso ajuda. Agora estou investigando o porquê.
fonte
Eu estava recebendo o erro "arquivo não encontrado" para um arquivo .h específico em meu projeto. Resolvi o problema removendo esse arquivo .h do projeto (selecionando "Remover referências") e adicionando-o novamente.
fonte
Adicionando mais variante: eu tinha duas instâncias de
foo.m
naCompile Source
fase de construção, o que causou "Cabeçalho não encontrado" parafoo.h
.fonte
Outra chance:
No projeto do espaço de trabalho: observe no Destino a seção Fases de construção. Como muitos manuais dizem, você precisa ter uma fase de compilação de arquivos de cópia para copiar todos os seus cabeçalhos para outro lugar, pois o iOS Framework não pode conter arquivos de cabeçalho para serem compartilhados (este é o meu caso).
Escolha para a opção Copiar arquivos como destino "Diretório de produtos". Ou outro diretório seu, onde os cabeçalhos ficarão.
Isso funcionou para mim. Provavelmente, a construção para o diretório Archive (ou Release) é muito diferente do esperado na construção para Debug.
Verifique também nas configurações do espaço de trabalho o diretório de construção.
XD
fonte
Para mim, esse problema ocorreu depois que adicionei novos arquivos ao projeto; um .m e .h em branco derivados de NSObject. Veja como resolvi isso:
Eu então os adicionei novamente e também funcionou.
Definitivamente um bug no xCode ...
fonte