Eu tenho um projeto iOS usando CocoaPods. Tudo estava funcionando bem até que outro desenvolvedor começou a trabalhar no mesmo projeto. Ele fez algumas alterações (apenas no código, até onde eu sei) e fez uma nova ramificação no repositório. Fiz o check-out do seu ramo e tentei construí-lo, mas estou recebendo um erro: O arquivo ASLogger / ASLogger.h não foi encontrado.
Mesmo que eu exclua todo o projeto e faça uma nova cópia e use 'pods install'. a falha de compilação ainda está lá. Você tem alguma idéia de onde o problema pode estar? Se você precisar de mais informações, basta perguntar.
Respostas:
Atualizar
Verifique se suas
Podfile
inclusõeslink_with
nos destinos estão ausentes em um arquivo de configuração. Cocoapods define apenas o primeiro alvo por padrão, caso contrário. por exemplo------ Finalizar atualização
Nota: Observe que você deve procurar em Projeto-> Informações-> Configurações as etapas abaixo.
Tive sintomas semelhantes e descobri que o
pods.xcconfig
arquivo não estava sendo incluído no específicotarget
que estava tentando criar. Algumas das outras soluções sugeridas funcionaram para mim, mas esta parecia abordar parte do problema subjacente.A solução simples foi alterar o conjunto do arquivo de configuração para os destinos que não tinham um conjunto.
fonte
link_with
para especificar meu outro destino funcionou para mim. Muito Obrigado. Passei várias horas nisso.link_with
não é suportado no Cocoapods 1.0 ou superior.Atualizar
Eu atualizei isso desde a minha resposta original, que obteve o voto negativo, então espero que isso ajude. E se isso acontecer, espero que receba meu voto de volta.
Se os cabeçalhos não estiverem sendo importados, você provavelmente terá um conflito no
HEADER_SEARCH_PATHS
. Tente adicionar$(inherited)
aos caminhos de pesquisa do cabeçalho nas Configurações de compilação para garantir que ele atraia os caminhos de pesquisa incluídos no arquivo .xcconfig dos seus CocoaPods.Isso deve ajudar com qualquer conflito e importar sua fonte corretamente.
fonte
1.Verifique
2.Verifique o estilo de importação (PONTO CHAVE), se o seu
podfile
tiver definidouse_frameworks!
No seu
File-Bridging-Header.h
, o formatador deve gostar deste#import "MBProgressHUD.h"
mais deve estar abaixo
#import <MBProgressHUD.h>
3. Isso deve ser trabalho! Confie em mim
fonte
Arquivos de cabeçalho, você será a minha morte ...
Finalmente funcionou adicionando (incluindo aspas)
à entrada Caminhos de pesquisa do cabeçalho do usuário e marque 'recursivo'.
fonte
$(inherited)
(não estava funcionando), mas adicionar isso funcionou para mim.Descobri que
${PODS_HEADERS_SEARCH_PATHS}
está faltando e não está definido no meu ramo de desenvolvimento git, então adicionei"$(SRCROOT)/Pods/Headers/"
para os Caminhos de pesquisa de cabeçalho com recursividade.Tudo bem para mim
fonte
$(SRCROOT)/Pods/Headers
As duas outras respostas não ajudaram aqui. Encontrei 2 outros problemas que podem corrigi-lo:
O Projeto-> Informações-> Configurações no projeto Xcode (seu projeto) deve ser definido como 'Pods' para Depuração, Liberação (e o que você tiver). Consulte "Cabeçalhos não encontrados - caminhos de pesquisa não incluídos"
Talvez você precise vincular o destino ao comando link_with. Consulte "Não foi possível encontrar os cabeçalhos no projeto da Biblioteca estática"
EDIT Você pode verificar um link simbólico da seguinte maneira: crie um arquivo de texto chamado 'check' sem uma extensão. copie estas linhas para ele:
Em seguida, vá para o terminal, vá para a pasta onde está o seu arquivo de cheque e digite
fonte
Aqui está o que funcionou para mim:
Vá para a guia Target> "Build Settings" e encontre a configuração "User Header Search Paths".
Defina isso como "$ (BUILT_PRODUCTS_DIR)" e marque a caixa de seleção "Recursiva".
Agora, o destino criado pesquisará o diretório de construção compartilhado da área de trabalho para localizar os arquivos de cabeçalho vinculáveis.
====
ATUALIZAR
Eu tive um problema semelhante (embora um pouco diferente) recentemente. Acabou que o Xcode não conseguiu encontrar os Pods porque eu havia aberto o
.xcodeproj
arquivo e não o.xcworkspace
arquivo. Pode ajudar os outros no futuro.fonte
pod install
e reabrir.Se nenhuma das opções acima funcionou para você e você está encontrando esse erro porque acabou de mudar para
use_frameworks!
no seu Podfile, continue lendo:Eu tentei todas as soluções acima e muito mais antes de aprender que não se trata de caminhos de cabeçalho de pesquisa no meu caso específico; é que quando você muda para
use_frameworks!
seu Podfile, não precisa mais incluir estruturas no cabeçalho da ponte e, de fato, o Xcode lançará o erro "inútil para encontrar o cabeçalho".O que você precisa fazer é remover todas as importações do seu arquivo de cabeçalho de ponte e, em vez disso, use o Swift
import Module
em seus arquivos individuais do Swift, conforme necessário, exatamente como faria nas estruturas do Swift.E se você estiver usando algum dos cabeçalhos de estrutura em suas classes de Obj-C (no meu caso, temos uma classe de conveniência que usou o FBSDK), é necessário alterá-lo de uma importação local para global (isso significa alterar
#import "Module.h"
para#import <Module/Module.h>
, que deve ser preenchido automaticamente para você quando você começar a digitar o nome do framework. No meu caso, foi<AFNetworking/AFHTTPRequestOperationManager.h>
).Edit: Eu já aprendi que fazer um
@import Module
usa o arquivo guarda-chuva que é ainda mais seguro.fonte
Você tentou importar o estilo Cocoapods?
As informações no site não são muito claras, enviei uma solicitação de recebimento:
https://github.com/CocoaPods/cocoapods.org/pull/34
Atualização: Eles puxaram meu pedido :)
fonte
O wiki dá um conselho sobre como resolver este problema:
fonte
$(PROJECT_DIR)/Pods/Headers/Public/xxx/ios/xxx.h
, há um extra deios
pasta ...Eu era o único desenvolvedor da equipe que estava enfrentando esse mesmo problema, que funcionava perfeitamente para todos, então eu percebi que tinha que ser o meu ambiente. Eu tentei
git clone
o mesmo projeto em outro diretório e ele compilou perfeitamente, então eu percebi que tinha que ser um cache do Xcode para o caminho do meu projeto em algum lugar, que "algum lugar" é a pasta DerivedData, basta removê-lo e fazer uma compilação limpa do seu projeto, funcionou para mim.Você pode obter o caminho e até abrir a pasta no localizador, acessando:
Xcode -> Preferências -> Locais -> ** DerivedData
fonte
Atualizarei os itens abaixo nas minhas configurações de compilação e não obtive nenhum erro. Para verificar estas são as coisas ao atualizar seus cocoapods.
Configurações de compilação
Construir apenas arquitetura
Caminho de pesquisa
fonte
Se você teve os erros de construção após uma " instalação de pod " ou uma " atualização de pod ", pode ser que um de seus pods tenha sido criado com o XCode 6.3 enquanto você ainda está usando uma versão anterior.
No meu caso, eu tive que atualizar meu OSX de mavericks para Yosemite para ter o Xcode 6.3 e resolver o problema
fonte
para mim, o problema estava no valor dos sinalizadores Other Linker. Por alguma razão, eu não tinha aspas em bandeiras como
-l"xml2"
-l"Pods-MBProgressHUD"
.fonte
Other Linker Flags
eu encontrei duas entradas:-|Localytics
e|-PodsLocalytics
. Eu os removi e depois consegui compilar.Eu tive que baixar o zip do git hub e arrastar os arquivos ausentes para o Finder nos caminhos correspondentes no Pod / ...
fonte
O que funcionou para mim foi selecionar o projeto Pods, localizar e selecionar a estrutura de destino com o cabeçalho ausente no diretório de destino do projeto Pod e definir "Build Active Architecture Only" como "No" em "Architectures" nas configurações de construção do destino.
fonte
Eu tenho o mesmo problema, mas as soluções acima não podem funcionar. Eu o corrigi fazendo o seguinte:
E então funciona.
fonte
Para mim, o que corrigiu o objetivo de implantação do iOS para o meu projeto de Pods foi menor que o meu próprio projeto. Depois que fiz o mesmo que o meu projeto, ele foi capaz de encontrar o arquivo de cabeçalho.
fonte
Eu estava na semente GM do Xcode 5.0 e não consegui obter nenhuma dessas respostas para funcionar. Eu tentei todas as respostas no SO em várias perguntas diferentes sobre importações de cabeçalho com cocoapods.
FINALMENTE, encontrei uma solução que funcionou para mim : atualizei para o Xcode 5.0 através do Mac AppStore (instalado na parte superior da semente GM) e agora as importações de cabeçalho estão funcionando conforme o esperado.
Eu também ainda tinha uma versão beta do Xcode 5 no meu sistema e a excluí também. Talvez tenha sido uma combinação das duas coisas, mas espero que isso ajude outra pessoa.
fonte
Esta foi a resposta para mim, atualizei os cocoapods e acho que isso fez o PODS_HEADERS_SEARCH_PATHS desaparecer. Minha solução foi semelhante a essa, mas usei "$ (PODS_ROOT) / Headers" - Andrew Aitken
Muito obrigado por esta resposta. Tive dificuldade em procurar maneiras de resolver meu problema. Muito obrigado.
fonte
Nenhuma das respostas me ajudou (eu tinha meus pods vinculados a todos os destinos, construí as configurações corretamente, definimos corretamente os caminhos de pesquisa "$ (herdados)", etc ...).
O problema desapareceu por si só depois que eu atualizei o cocoapods para a versão mais recente e depurada usando o comando padrão install / update:
ou:
(se sudo foi usado durante a instalação).
Deve ter sido bug de cocoapods.
fonte
Uma solução simples é: 1. Exclua a pasta Pods e o arquivo Podfile.lock. Mas não exclua o Podfile 2. Execute o seguinte comando na pasta raiz do projeto:
fonte
Aqui está outro motivo: todos os caminhos do cabeçalho pareciam bons, mas ainda havia um erro no arquivo pré-compilado (.pch) ao tentar ler um cabeçalho do pod
(por exemplo, #import <CocoaLumberjack / CocoaLumberjack.h>).
Olhando para a saída bruta da compilação, finalmente notei que o erro estava quebrando nosso alvo de extensão do Watch OS, não o principal destino que estávamos construindo, porque também estávamos importando o arquivo de cabeçalho pré-compilado .pch nos destinos do Watch OS e estava falhando há. Verifique se as configurações de destino do Watch OS que acompanham não tentam importar o arquivo .pch (especialmente se você definir essa importação da configuração de destino principal, como eu fiz!)
fonte
Descobri que incluir a biblioteca como uma instalação de pod diretamente ajuda bibliotecas dinâmicas. Por exemplo, para Firebase:
Ou para o ASLogger:
Mudar ou codificar permanentemente
HEADER_SEARCH_PATHS
não me ajudou. Se o erro persistir, não é necessáriorm -rf node_modules
excluir nem excluir o arquivo pod, etc., achei útil limpar o cache.Para react-native, eu corro
Para o Xcode, removo pastas do
~/Library/Developer/Xcode/DerivedData
fonte
Penso que uma solução definitiva é acessar
Build settings -> Search Path -> User Header Search Paths
, encontrar o caminho da sua biblioteca e percorrê-lo em um localizador. Verifique se existe todo o caminho, incluindo o caminho de importação.Para mim, meu caminho foi mais curto do que em um tutorial. No tutorial, era algo como
#import <SDK/path/to/sdk/File.h>
, mas acontece que é apenas#import <SDK/File.h>
fonte
Eu tenho outra solução trabalhada aqui,
fonte
Tente comentar esta linha para o seu destino
Ou você pode consultar minha outra resposta, que adicionou o destino do teste de unidade ao xcode - a falha na importação do cabeçalho da ponte não desaparece
fonte
Resolvi esses problemas para o Xcode 8.2.1 arrastando e soltando a estrutura que eu quero usar.
fonte