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.