ld: estrutura não encontrada Pods

234

Estou tentando adicionar uma estrutura ao meu projeto IOS, mas quando construo sempre recebo a mesma mensagem:

ld: estrutura não encontrada Pods

clang: error: o comando do vinculador falhou com o código de saída 1 (use -v para ver a chamada)

Tentei remover meu Podsdiretório e, em seguida, executei pod install abro o .xcworkspaceque está escrito nos logs na instalação do pod, limpo o projeto no xcode e depois tento compilar, mas não funciona ..

Meu podfile fica assim:

xcodeproj '/Users/guillaume/project/Mobile/iOS/FoodPin/FoodPin.xcodeproj'
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
use_frameworks!
pod 'SwiftHTTP', '~> 0.9.2'

Minha versão do xcode é 6.3.1

Obrigado,

Kaëris
fonte
1
Você verificou isso libpods.aem suas "Frameworks e bibliotecas vinculadas" do seu destino? E nas suas fases de construção também?
precisa saber é o seguinte
Você conseguiu resolver isso? Estou tendo o mesmo erro
Christopher Francisco
@ChristopherFrancisco Eu resolvi, verifique minha resposta.
Arbitur
1
Isto como responder [1] resolveu meu problema! Espero que ajude [1]: stackoverflow.com/a/31161871/1557663
Mário Carvalho
@ MárioCarvalho Isso é apenas uma versão mais longa e mais novato-friendly da minha resposta x)
Arbitur

Respostas:

524

Dentro Project Navigatorda pasta Podseu tinha um Pods.frameworklá dentro que estava vermelho. Também esteve presente em Linked Frameworks and Libraries. Eu removi as duas referências e o erro desapareceu.

TL; DR

Remover Pods.frameworkem:

  • Pasta denominada Pods
  • Linked Frameworks and Libraries
Arbitur
fonte
5
Acho que acabei com esse problema após adicionar use_frameworks! para o meu Podfile e posteriormente comentá-lo. A exclusão da referência ao Pods.framework corrigiu o problema.
StephenT
2
@ Stephen Sim, eu acredito que foi o que fiz também, primeiro uso use_frameworks!e depois sem e talvez Pods.frameworknão tenha sido excluído corretamente durante pod install. Pode ser um bug no Cocoapods.
Arbitur #
Esta é uma boa resposta, não afeta o aplicativo de exemplo, ele ainda está funcionando bem.
Gabriel Goncalves
3
Se isso não funcionar, tente usar cocoapods-desintegrate. Isso acabou de resolver esse problema para mim.
Nickdnk
2
Após executar a instalação do pod, de alguma forma, acabei com um arquivo de estrutura "Pods_ <Nome do Projeto>". Na minha pasta Pods. A exclusão deste arquivo, a limpeza e a reconstrução removeram esse erro para mim.
Caleb Faruki
209

Isso geralmente é causado pela abertura do arquivo .xcodeproj em vez de .xcworkspace.

Quando você executa o 'pod install' pela primeira vez, ele cria um arquivo .xcworkspace, que inclui o seu .xcodeproj original e um projeto de Pods. Você precisará fechar seu .xcodeproj e abrir o .xcworkspace.

Esse é um problema comum ao criar um projeto através do novo assistente de projeto do Xcode - muitas vezes esqueço que não estou em uma área de trabalho, necessária para fazer com que os Cocoapods sejam vinculados corretamente.

Chris Trevarthen
fonte
Obrigado ! Está me confundindo na primeira vez #
Phi Nguyen
6
Sua explicação é muito melhor do que eu já vi em outros lugares. Eu não percebi o que estava acontecendo. Obrigado!
Michael Yaworski
Quando feito em combinação com a resposta da Arbitur, isso resolve o problema. Obrigado!
user1577390
Este foi exatamente o meu problema. Obrigado!
Antonio Papalillo 27/09/18
não há arquivo .xcworkspace dentro do meu projeto. o que fazer
Kartiikeya
126

Xcode 9, 10, 11, 11.5

instalar https://github.com/CocoaPods/cocoapods-deintegrate

pod deintegrate

então

pod install
Ted
fonte
1
Trabalhou como um encanto! Obrigado. Isso eliminou uma referência antiga a um destino renomeado que estava causando esse erro.
Alex Obenauer
1
Você é meu herói! ;)
Swissdude 6/06/19
1
Uau, você salvou meu dia! foi preso ontem e finalmente resolvido com o Xcode 10. Obrigado!
Purushottam Padhya
1
Essa deve ser a resposta correta, é a abordagem mais segura. Não execute etapas manuais ao usar itens automatizados como o CocoaPods, a menos que seja um bug conhecido que não possa ser corrigido de outra forma.
Gobe
1
esse me ajuda, cara incrível!
Sruit A.Suk
51

Eu limpei esse erro excluindo os .frameworkarquivos vermelhos que estavam localizados em uma pasta Frameworksno project navigator. Eu acho que isso também excluiu automaticamente as entradas vermelhas correspondentes na Linked Frameworks and Librariesseção das Generalconfigurações.

Estou limpando / reinstalando pods para corrigir outro problema. Talvez esses arquivos e entradas da estrutura vermelha tenham sido apenas os restos de uma instalação anterior do pod?

theblang
fonte
Sim! Meu problema estava nas estruturas vinculadas e nas bibliotecas das configurações gerais e foi difícil de encontrar, pois não aparece em uma pesquisa de texto!
Alistair Cooper
No meu caso, os arquivos de estrutura não eram nem vermelhos, mas apenas acinzentados. Mas excluí-los parece ter resolvido o problema!
Swindler
29

Para quem encontra esse problema. Estou usando o NativeScript e recebi o mesmo erro.

Isso aconteceu porque eu abri o arquivo .xcodeproj, mas devemos abrir o projeto pelo arquivo .xcworkspace.

calebeaires
fonte
27

Isso aconteceu comigo depois de atualizar meu Podfile e fazer uma atualização de pod.

Por alguma razão, eu tive um arquivo de estrutura "Pods_ [ProjectName]". Aparecendo no meu projeto em 'Destinos'> Geral> Frameworks e Bibliotecas Vinculadas.

A exclusão e a limpeza / reconstrução corrigiram o problema.

Elliott Davies
fonte
2
Isso acontece quando você alterna os nomes dos projetos e precisa limpar o antigo. 1
Babbz77
Isso funcionou para mim. Não mudei o nome do projeto, mas adicionei o Swift a um projeto Objective-C de longa duração.
5606 Luffy #
24

Eu tive um problema semelhante ao

framework not found Pods_OneSignalNotificationServiceExtension

Foi resolvido removendo o seguinte. Vá para o destino OneSignalNotificationServiceExtension> Fases de compilação> Vincular binário a bibliotecas e excluir Pods_OneSignalNotificationServiceExtension.framework Deve estar vazio aqui. Espero que isso ajude. Felicidades.

Sharukh Mastan
fonte
Isso corrigiu o problema para mim. Minha situação particular é que eu tinha um destino para iOS no MyApp. Então, eu precisava criar um segundo destino e ter os destinos MyAppFirst, MyAppSecond. O Cocoapods conseguiu criar o que precisava (Pods_MyAppFirst, Pods_MyAppSecond), mas também estava tentando vincular ao Pods_MyApp que não existia mais. Quero ressaltar que, no processo de tentativa de correção, joguei fora meu arquivo da área de trabalho e a pasta Pods para que eles fossem recriados do zero quando executei uma “instalação de pod”, mas isso não ajudou.
Xdeleon
@Sharukh Mastan Você tem alguma idéia de como fazer isso acontecer após a instalação de um pod? Sempre que instalo um pod, ele Pods_OneSignalNotificationServiceExtension.framework volta a me assombrar nas estruturas e bibliotecas vinculadas do OneSignalNotificationServiceExtensiondestino.
Sethmr 25/04/19
@Sethmr Infelizmente, não. No meu caso, no entanto, nem sempre acontece depois de um pod install, é aleatório.
Sharukh Mastan
@SharukhMastan Meu problema foi abrir o *.xcodeproj/*.xcworkspacesobre o *.xcworkspacescript de automação vsym .yml. Eu conheço melhor com uma GUI, mas ainda estou me acostumando com os requisitos na área de scripts.
Sethmr
15

Eu estava recebendo esse erro porque renomeei meu projeto e alterei o nome do projeto no arquivo pod também, mas meu projeto estava se referindo ao nome antigo que não estava lá e estava causando esse erro. Eu me livrei disso por

pod deintegrate

Seguido por

pod install
osama
fonte
Sim! Eu tive o mesmo problema ao fazer o downgrade da versão de 12.0 para 9.0. O procedimento acima funcionou depois que eu modifiquei a versão de destino no meu Podfile para corresponder ao que estava no projeto.
Richard Bown
Boa resposta. Obrigado.
whdals0
14

você deve excluir seu projeto de algum arquivo como esta imagem.

você deve excluir os pods.framework e os pods marcam arquivos vermelhos

lingyfh
fonte
10

Apenas remova seu .framework da lista de "Seu Projeto-> Geral-> Estrutura e Bibliotecas Vinculadas".

Md. Ibrahim
fonte
Foi isso, eu tive dois depois que renomeei o projeto. Obrigado!
Jimmy
10

Isso aconteceu comigo porque eu mudei o Deployment Targetin, Generalmas esqueci de mudar o Deployment Targetin Pods > General. Alterar o destino de implantação

Dary
fonte
Corrigido para mim também, o Xcode 11.2 / Cocoapods 1.8.4. Irritante que a mensagem de erro não tem qualquer semelhança com a causa raiz ...
Jonathan Ellis
1
Corrigido para mim - não tinha ideia de que precisava mudar isso nos dois lugares. Muito obrigado!
hakazvaka
6

No meu caso, posso construí-lo em dispositivos e simuladores, mas com os mesmos erros ao arquivar. Para resolvê-lo, tenho que

  • remover Pods.framework
  • verifique se Pods-<project-name>.frameworkestá incorporado

Você encontrará as configurações em TARGETS -> Frameworks e bibliotecas vinculadas.

SeanChense
fonte
Você poderia verificar isso: github.com/CocoaPods/CocoaPods/issues/…
Esqarrouth
4

Passo 1

A primeira coisa que você precisará fazer é remover o Podfile, Podfile.lock, a pasta Pods e o espaço de trabalho gerado.

Passo 2

Em seguida, no .xcodeproj, remova as referências aos arquivos Pods.xcconfig e libPods.a.

etapa 3

Na guia do projeto Build Phases, exclua a seção Check Pods Manifest.lock (aberta), a seção Copy Pods Resources (em baixo) e Embed Pod Pod Resources (em baixo).

Passo 4

Remova o Pods.framework.

A única coisa que você pode querer fazer é incluir algumas das bibliotecas que você estava usando antes. Você pode fazer isso simplesmente arrastando as pastas que estiverem nas pastas pods para o seu projeto (prefiro colocá-las na minha pasta Arquivos de Suporte).

Funcionou para mim.

AG
fonte
Etapa 3 funcionou no meu caso, etapa 3 -> cmd + alt + shift + k.
ViruMax
4

Você provavelmente está tentando fazer com que os pods trabalhem no seu projeto, certo? A única maneira de fazer isso é criando um projeto separado que use CocoaPods.

Feche todos os espaços de trabalho que você está usando.

Em seguida, verifique se o seu Podfile está completamente pronto para uso.

Na linha de comando, onde quer que esteja o seu arquivo, digite o comando:

pod deintegrate

Em seguida, instale seu pod agian.

pod install or pod update

Agora você pode usar o novo espaço de trabalho do seu projeto para desenvolver. Procure um arquivo chamado .workspace. Use esse arquivo!

Aqui está um guia sobre o uso do CocoaPods

Emmanuel Mbaba
fonte
Somente este funcionou para mim após 2 dias de luta com o erro.
Mitesh Dobareeya
3

Usando o Xcode 8.3, a resposta aceita não funcionou para mim. Eu tinha tentado muitas outras soluções, mas a resposta do @ Elliott Davies é o que a corrigiu para mim. Estou adicionando uma captura de tela para maior clareza. Por alguma razão, o Xcode estava tentando vincular configurações de podfile anteriores que não existiam mais. Tudo o que eu precisava fazer era excluir as referências extras e tudo funcionou.Captura de tela de estruturas e bibliotecas vinculadas do Xcode

jbryant
fonte
3

Esse problema estava me deixando louco, porque de repente aconteceu sem fazer nenhuma alteração no projeto. Eu tentei todas as soluções sugeridas neste segmento (e outras relacionadas) e nenhuma delas resolveu o problema.

A única coisa que diferia dos meus outros projetos (que compilavam bem) era que o nome do projeto estava com sotaque (sotaque francês, "é"). Renomeei o projeto e todos os arquivos relacionados e finalmente funcionou!

Talvez isso esteja relacionado à atualização para o Xcode 10, porque este projeto estava funcionando bem antes ...

EDIT: também parece falhar ao usar um projeto com o -nome do projeto…

AnthoPak
fonte
1
Você salvou minha vida
Florian Mac Langlade
1
Salvou minha vida também!
Dan
Alguma solução além de renomear o projeto?
anestis 15/10/19
@ Anestis Acho que não. Para renomear rapidamente o projeto, sugiro comandos desta resposta stackoverflow.com/a/48004237/4894980, que fazem um ótimo trabalho!
AnthoPak 15/10/19
3

No meu caso, depois de comparar a diferença entre um ramo que eu sabia construir corretamente, notei esta linha no meu Podfile:

platform :ios, '11.0'

Eu tinha inadvertidamente aumentado minha versão de destino de 10 para 11, enquanto meus alvos no Xcode permaneciam em 10. Voltar para 10 resolveu meu problema para mim.

Verifique se as versões de destino do iOS estão definidas corretamente.

joels
fonte
Você salvou meu dia !! Obrigado
Mayank Patel
3

É assim que resolvo o meu problema. e agora funciona quando escrevo esta resposta:

Em primeiro lugar, eu tento da maneira mais correta acima,

remover Pods_xxx.framework das bibliotecas de links e da estrutura nas fases de construção do destino é útil, e o problema desaparecerá, mas o próximo problema é que não consigo mais importar o Pods.framework.

E então, tento reiniciar a configuração do xcworkspace, para que eu possa descobrir o problema real. então eu corro

pod deintergate

e instale meu pod novamente:

pod install

este trabalho é perfeito, mas o problema ainda está lá, mas eu descobri que o problema real é que o Pods_xxx.framworks não deve ser compilado com êxito pelo script de construção dos cocoapods. Eu acho que essa é a verdadeira maneira de corrigir o problema.

Por fim, tento editar o esquema do meu projeto:

O esquema de pods não está editado

e adiciono o esquema de pods para gerenciar:

insira a descrição da imagem aqui

e crie esse Pods.framework separadamente, e você verá que o ícone Pods.framework se tornará verdadeiramente novamente:

insira a descrição da imagem aqui

e acho que agora você corrigiu o problema do "quadro não encontrado Pods_xxxx.framework", mas na verdade tenho outro problema:

insira a descrição da imagem aqui

então eu vou para a configuração de compilação e edito o "Framework Search Path"com "${inherited}", e agora todos os problemas desaparecem, aplaude !!!! :)

insira a descrição da imagem aqui

Levine Veblen
fonte
Adicionar o alvo do Pod e construí-lo mostrou o que havia de errado com a compilação do pod. No nosso caso, isso foi um conflito de versão rápido. Obrigado!
green0range
Eu não segui todos os passos. Acabei de adicionar esse ${inherited}caminho, depois o fiz Product->Clean Build Folder, e é isso, agora ele cria sem problemas.
Starwave
2

Depois de remover e atualizar o pod, eu ainda tinha o mesmo problema.

Descobri que o desenvolvedor anterior colocou o sinalizador em ' Configurações de compilação -> Outros sinalizadores de vinculador ' com o nome do Framework (no meu caso - quadro 'OGVKit') que fez o problema.

Após excluir esse sinalizador, o projeto é compilado corretamente.

Babac
fonte
Muito obrigado! Você sempre deve ficar de olho nas coisas que estão em negrito nas Configurações de compilação!
Marcio Granzotto
2

Eu tive esse problema porque não configurei o platform corretamente.

Portanto, no meu aplicativo macOS, a plataforma estava configurada para:

platform :ios

ao invés de

platform :osx
Besi
fonte
1

Resolvi esse problema selecionando o projeto que foi baixado CocoaPodse construído, você pode clicar em Gerenciar esquemas para que ele apareça na barra Executar. Então você pode reconstruir seu projeto. Espero que ajude.

vinhsteven
fonte
1

No meu caso, houve uma referência à biblioteca que removi no

Destinos> Configurações de compilação> Caminhos de pesquisa do caminho de execução

Remover a biblioteca do Podfile e atualizá-lo obviamente não o removeu, então eu tive que fazer isso manualmente e agora tudo funciona.

Marina Aguilar
fonte
1

Nenhuma das respostas anteriores apontou o problema raiz na minha situação. Então, espero que isso possa ser útil para outra pessoa.

No meu caso, acabei tendo que editar meu podfile na raiz do meu projeto. Quando eu criei meu podfile, não havia suporte para bibliotecas estáticas rápidas. Então, eu estava usando use_frameworks!no meu podfile sob cada um dos meus destinos como tal:

ANTES

...
target 'targetName' do
   use_frameworks!
   pod 'podName', '~> 0.2'
end

DEPOIS DE

...
target 'targetName' do
   pod 'podName', '~> 0.2'
end

Eu removi use_frameworks!do meu podfile que continuava instalando as estruturas toda vez que eu executava a instalação do pod. Após remover esta linha, certifique-se de executarpod install novamente e remova qualquer uma das referências .framework vermelhas da pasta Frameworks no Xcode. (Embora o meu apareça de maneira diferente, conforme anexado abaixo.)

Imagem de Remoção de arquivos .framework que não são mais necessários

Você também pode ler mais sobre use_framework! aqui .

the.giologist
fonte
0

Se você abriu o arquivo .xcworkspace e ainda assim obteve o mesmo erro:

delete all the contents of Pods directory and from command line write "pod install" to resolve the issue.
Alp Altunel
fonte
0

Exclua a pasta frameworks criada após a instalação ou atualização do pod

Xcoder
fonte
0

Outra coisa que resolveu o meu problema é ir em Target -> Build Settings -> Other linker Flags e excluir o "-framework" e a estrutura "name".

Aconteceu quando tentei remover um pod.

atacand1920
fonte
0

Resolvi isso arrastando o .frameworkarquivo para o Linked Framework and Libraries

Digamos que eu estava tendo esse problema devido a um erro FIRAnalyticsConnector not founde apenas arrastei o FIRAnalyticsConnector.framworkarquivo para o Linked Framework and Libraries e meu problema foi resolvido

Sultan Ali
fonte
0

Eu tentei todas as respostas aqui e nenhuma delas funcionou. Acabei fazendo o trabalho aumentando o destino de implantação de 10.0 para 11.0. Não tenho idéia do porquê disso corrigido, mas suspeito que tenha a ver com a atualização para o Xcode 10.2.1.

Vigarista
fonte
0

talvez de repente você abra o arquivo errado de .xcodprj e deva abrir .xcworkspace

amirtutunchi
fonte
É melhor postar isso como um comentário.
Masoud Rahimi
0

Por favor, verifique seu arquivo executável dentro de. insira a descrição da imagem aqui

  1. O nome do arquivo executável deve ser assim sem nenhuma extensão.

  2. Algumas estruturas mostrando assim insira a descrição da imagem aqui

  3. Usando o Terminal goto.

depois de criar um único arquivo executável, exclua esses arquivos insira a descrição da imagem aqui

Purnachandar Rao Voleti
fonte