Xcode - ld: biblioteca não encontrada para -lPods


185

Eu recebo esses erros quando tento criar um aplicativo iOS.

ld: library not found for -lPods
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Ld /Users/Markus/Library/Developer/Xcode/DerivedData/Totalbox-clpeqwpfvwuhpleeejnzlavncnvj/Build/Products/Debug-iphonesimulator/Totalbox.app/Totalbox normal x86_64
cd /Users/Markus/Development/xcode/totalbox-ios
export IPHONEOS_DEPLOYMENT_TARGET=7.1
export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch x86_64 -isysroot 
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.1.sdk -L/Users/Markus/Library/Developer/Xcode/DerivedData/Totalbox-clpeqwpfvwuhpleeejnzlavncnvj/Build/Products/Debug-iphonesimulator -F/Users/Markus/Library/Developer/Xcode/DerivedData/Totalbox-clpeqwpfvwuhpleeejnzlavncnvj/Build/Products/Debug-iphonesimulator -filelist /Users/Markus/Library/Developer/Xcode/DerivedData/Totalbox-clpeqwpfvwuhpleeejnzlavncnvj/Build/Intermediates/Totalbox.build/Debug-iphonesimulator/Totalbox.build/Objects-normal/x86_64/Totalbox.LinkFileList -Xlinker -objc_abi_version -Xlinker 2 -ObjC -framework CoreGraphics -framework Foundation -framework MobileCoreServices -framework QuartzCore -framework Security -framework SystemConfiguration -fobjc-arc -fobjc-link-runtime -Xlinker -no_implicit_dylibs -mios-simulator-version-min=7.1 -framework CoreGraphics -framework UIKit -framework Foundation -lPods -Xlinker -dependency_info -Xlinker /Users/Markus/Library/Developer/Xcode/DerivedData/Totalbox-clpeqwpfvwuhpleeejnzlavncnvj/Build/Intermediates/Totalbox.build/Debug-iphonesimulator/Totalbox.build/Objects-normal/x86_64/Totalbox_dependency_info.dat -o /Users/Markus/Library/Developer/Xcode/DerivedData/Totalbox-clpeqwpfvwuhpleeejnzlavncnvj/Build/Products/Debug-iphonesimulator/Totalbox.app/Totalbox

PODS ROOT nas configurações de compilação:

${SRCROOT}/Pods

Eu não criei esse projeto do Xcode - apenas peguei no git para verificá-lo.

Respostas:


601

Se o projeto usa CocoaPods, lembre-se de sempre abrir o .xcworkspacearquivo em vez do .xcodeprojarquivo.


2
Também achei útil criar o alvo do pod, não o alvo normal do Xcode.
Don Simon

1
Depois de abri-lo, não consigo mais executar meu projeto. O que devo fazer?
Inuyasha

Percebi que uma referência a Podsestá no .xcodeprojmas não no .xcworkspace, portanto, por que essa solução funciona.
23616 Jacksonkr

1
Cd na pasta do projeto e execute "pod update". Se você não possui um pod, pesquise como instalá-lo.
justinkoh

2
Recebi essa mensagem de erro ao abrir o .xcworkspace (para ser mais específico, isso funcionou uma vez em um mac e não o outro). No meu caso, encontrei o problema relacionado a renomear um projeto e, posteriormente, copiá-lo para um computador diferente , as bibliotecas não foram copiadas para o novo local. comparar: /Users/[USERNAME]/Library/Developer/Xcode/DerivedData/[OLDPROJECTNAME]-[LONGRNDCHARS]/Build/Productsa:/Users/[USERNAME]/Library/Developer/Xcode/DerivedData/[NEWPROJECTNAME]-[LONGRNDCHARS]/Build/Products
Yatko

97

Teve esse problema também. Algo estava errado com a minha instalação do CocoaPods. Nenhum pod diferente do KIF estava sendo instalado corretamente. Eu segui os comentários neste tópico para ajudar.

Basicamente, eu precisava garantir que as Build Active Architectures Onlyconfigurações do meu projeto e do projeto Pods fossem iguais.


7
Eu tinha que ter certeza que também era igual entre os alvos do meu projeto e as metas do pod ...
Nimrod Shai

Isso acontece comigo uma vez a cada 6 meses e nunca consigo me lembrar de como resolvi isso da última vez ... Construa apenas a arquitetura ativa. . . Que todos nos lembremos
Kanongata

51

Após horas de pesquisa, essa solução funcionou para mim:

(aviso: os resultados podem variar devido às circunstâncias)

o Library not found -lPods-(someCocoapod)erro ocorreu devido a várias entradas no:

Settings(Target) > Build Settings > Linking > 'Other Linker Flags'

Muitas outras postagens me fizeram olhar para lá e eu veria alterações no erro quando eu brincava com as entradas, mas eu continuava recebendo algumas variações do mesmo erro.

Muitas horas perdidas ...

Minha correção:

remova as linhas -lPods- (someCocoaPod) na lista 'Outros sinalizadores de vinculador', MAS apenas se $ (herdado) estiver no topo. No começo, eu não tinha certeza, mas o sinal tranquilizador era que eu ainda via referências aos meus cocoapods quando saí do modo de edição (herdado). Eu testei na depuração e na liberação, ambas com erros, e o problema foi resolvido imediatamente.


funcionou como um encanto, obrigado. Eu só tive esse problema ao atualizar para o Swift 2.0 no El Capitan. Funcionou perfeitamente antes.
Ovi

Eu tenho apenas $ (herdado) e, ao mesmo tempo, tenho essas bobagens frustrantes. Onde posso editar o valor original para a variável $ (herdada)?
nickolay 22/09/15

Você salvou a minha homem dia .... preso neste problema para tempo ... isso aconteceu porque eu tenho remover todo projeto pod e re acrescentou ele
Mihir Mehta

Corrigido para mim também. Nunca teria descoberto isso sozinho!
bmueller

Pode apostar! Funciona como um encanto
Rob Sanders

31

Parece que o projeto está usando cocoapods . e esses arquivos estão ausentes do seu projeto.

Você não pode simplesmente baixá-lo do git. Você precisa instalá-lo a partir de cocoapods.

para obter mais ajuda, você pode seguir o Tutorial de introdução ao CocoaPods

Se o projeto usar, CocoaPodsesteja ciente de sempre abrir o .xcworkspacearquivo em vez do .xcodeprojarquivo


1
@RahulPatel Como instalar o arquivo específico que você pode por favor, compartilhe o comando
Ashok Londhe

Se você deseja usar a nova versão beta, pode usar:pod 'GoogleAds-IMA-iOS-SDK-For-AdMob', '3.0.beta.16'
Berendschot

27

Se você tiver vários alvos em seu projeto, os Cocoapods podem ter se integrado apenas a apenas um deles.

Eu tive que conectar manualmente libPods.aem "Vincular binário com bibliotecas" para cada destino adicional que eu tinha.

libPods.a na minha lista de frameworks


eu acho que pod arquivo de instalação libPods.a não está integrado a todos os alvos, como Rizwan isntruction eu adicionei e ele funciona ... Graças Rizwan Sattar
Wagh

Isso funcionou para mim, embora não tenha sido mostrado em vermelho. Executei a instalação do pod depois e ela não foi adicionada; tudo parece funcionar.
Jules

2
Na verdade, o que eu precisava fazer era remover uma biblioteca desatualizada (my-project-name) .a porque renomeei o projeto antes e ele estava preso lá. Avaliei sua resposta porque ela me deu uma idéia de onde o problema poderia estar.
precisa saber é o seguinte

Você é um salva-vidas!
Yuliwee

24

Meu problema foi corrigido pela seguinte configuração:

Build Active Architecture Only: YES

Isso funcionou para mim quando eu encontrei um problema com SDWebImage .... para aqueles que têm encontrado o seu caminho aqui para esse componente Cocoapod
Scott D

Isso resolve esse problema para mim, mas causa outro. Preciso construir para todas as arquiteturas, não apenas a ativa.
HotFudgeSunday 5/08/16

Em um código antigo, estou integrando pods. Eu estou enfrentando o mesmo problema. A resposta acima ajudou.
Shashank Kulshrestha

15

Se alguém veio aqui para resolver um erro react-native-fbsdkapós instalá-lo Cocoapods, lembre-se de que você deve remover todos os outros arquivos .a em suas fases de construção de Projetos e manter apenas o .a dos cocoapods chamados libPods-WhateverAppName.a.

Apenas isso permanece aqui

Isso geralmente é causado pela execução rnpm link e pela maneira como o rnpm funciona.

Depois de remover o arquivo. Core do facebook das fases de construção, meu projeto voltou a funcionar.


11

Esse problema relacionado aos IPods pode ser corrigido seguindo as etapas abaixo

  • Selecione seu destino do projeto.
  • Vá para "Build Phases"dentro "Link Binary With Libraries".
  • Agora remova ".a" arquivo dessa biblioteca que está criando o problema.
  • Limpe e construa.

Isso vai funcionar.


No meu caso, a remoção libstdc++.6.dylibresolveu o problema!
Igor de Lorenzi

Como e onde você removeu o "libstdc ++. 6.dylib", pois preciso remover o "-lstdc ++. 6". Estou recebendo a "biblioteca não encontrada para -lstdc ++. 6"
Hari Narayanan

10

Nenhuma das respostas acima o corrigiu para mim.

O que eu tinha feito foi executado pod installcom um podcomando fora da targetseção. Então, por exemplo:

#WRONG
pod 'SOMEPOD'

target "My Target" do
    pod 'OTHERPODS'
end

Eu rapidamente o consertei e retornei a cápsula errante de volta à targetseção em que pertencia e corri pod installnovamente:

# CORRECT
target "My Target" do
    pod 'SOMEPOD'
    pod 'OTHERPODS'
end

Mas o que aconteceu nesse meio tempo foi que a lib -libPods.afoi adicionada às minhas bibliotecas vinculadas, que não existe mais e não deveria, pois já existe o-libPods-My Target.a .

Portanto, a solução foi acessar as configurações gerais do meu Target, acessar as Frameworks e bibliotecas vinculadas e excluir -libPods.ada lista.


Instalei os cocoapods corretamente para o meu projeto, mas tive o mesmo erro do OP. A exclusão de -libPods.a resolveu isso para mim. Obrigado gentilmente, senhor.
NKorotkov 15/01

Eu estava atualizando um projeto antigo, recolhi o antigo Podfile e corri pod initpara configurar um novo, e descobri que o arquivo antigo era como você # WRONGe o novo arquivo é como # CORRECT. Obrigado!
BJ Miller

8

Meus passos:

  1. Exclua a pasta pods e o arquivo 'Pods'.
  2. Digite "pod install" no Terminal.
  3. Digite "pod update" no Terminal.

Além de garantir que "Construir arquiteturas ativas" foi definido como SIM, como mencionado nas respostas anteriores, foi isso que fez isso por mim.


+1 No meu caso, se é -lHelpshiftou o nome específico do pod. Então eu removo apenas uma pasta específica, assim é Pods/Helpshift. Então faça pod installnovamente. Não há necessidade de atualizar. Funciona agora.
haxpor

1
A exclusão de todos os pods e a reinstalação ajudaram.
Sanad Liaquat

7

Tinha um mesmo problema após a atualização Deployment targeta partir 7.0de 8.0e permitindouse_frameworks!

cocoapods não excluiu gerado anteriormente PodName.a arquivos diretórioFrameworks seção do meu projeto.

Então eu tive que excluí-los manualmente, porque eles causaram o linker error


4

Exclua todos os arquivos / pastas correspondentes da fonte importada dos cocoapods, exceto o podfile.

install cocoapod Isso deve eliminar qualquer atração redundante da fonte original.


3

Quando você clona um projeto de algum lugar que use o Cocoapods, é necessário instalá-lo no seu projeto.

Aqui, passo a passo, o que você precisa fazer:

  • 1) clonar o código fonte na máquina local;
  • 2) feche o projeto xcode (se aberto);
  • 3) instale o aplicativo cocoapods no seu mac executando este comando no terminal: " gem install cocoapods ", adicione " sudo " no início se não funcionou;
  • 4) vá para a raiz do seu projeto xcode usando o comando " cd " no terminal;
  • 5) você deve ter o Podfile nesta pasta; se você quiser checar duas vezes, use: comando " cat Podfile ", ele exibirá o conteúdo desse arquivo com Bibliotecas que deverão ser instaladas no seu projeto;
  • 6) use o comando " pod install " para baixar e instalar as bibliotecas no seu projeto; o Podfile.lock será criado e {Your project name} .xcworkspace arquivo ;
  • 7) a partir de agora você deve usar {Your project name} .xcworkspace para abri-lo no xcode;

Boa sorte!


3

Este foi o meu problema ao tentar integrar o Firebase ao meu projeto Xcode usando cocoapods

library not found for -lGoogleToolboxForMac
linker command failed with exit code 1 (use -v to see invocation)

Após horas pesquisando e testando várias correções listadas no stackoverflow, meu problema foi finalmente corrigido, seguindo as etapas a seguir

  1. Vá para Build Settings, procure Other Linker Flags, remova todos os valores esperados$(inherited) Imagem

Faça isso para todos os destinos.

  1. Exclua a pasta pods. ( ios/Pods)
  2. Faz pod update

Voila! Todos os erros do vinculador desaparecerão.


Isso precisava acontecer para mim também. No entanto, também no meu caso, foi um aplicativo nativo de reação adicionado ao Firebase Analytics. Em julho de 2018, todos os aplicativos devem ser criados com o iOS 11 por Apple: developer.apple.com/ios/submit/ Depois de acessar a guia Geral, rolei para baixo até Informações de implantação / Destino de implantação e mudei da 10.x, que é o que eu estava alvejando, para 11.x - o aplicativo foi construído / arquivado e eu pude enviar.
bo_

2

Para mim, seguir funcionou.

  1. Vá para "Destino do projeto -> Configurações de compilação -> Pré-processamento -> Macros do pré-processador". Defina "COCOAPODS = 1" em todas as versões de depuração, integração e lançamento em "Macros de pré-processador"
  2. Adicione o seguinte em "Outros sinalizadores de vinculador" em "Destino do projeto"
    1. $ herdado
    2. -ObjC
    3. -lc ++
    4. -all_load

Limpe e execute o projeto. Se o erro persistente receber o mesmo, tente definir "Destino do projeto -> Configurações de compilação -> Somente arquiteturas ativas", defina "Depuração" como "SIM" e defina "Integração e versão" como "Não". Repita a mesma configuração de "Criar somente arquiteturas ativas" para todos os "Destinos de pods"

Limpe e execute o projeto. Se você receber o seguinte erro

 No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=x86_64, VALID_ARCHS=i386).

Então tente o Sr. Mike responder neste link

Xcode 5.1 - Nenhuma arquitetura para compilar (ONLY_ACTIVE_ARCH = YES, arco ativo = x86_64, VALID_ARCHS = i386)

Espero que ajude!


2

Em um projeto com vários destinos, tive o mesmo problema depois de alterar o nome do esquema e do aplicativo e tentei atualizar os pods. O problema foi causado por causa de várias entradas em Fases de compilação -> Vincular binário a bibliotecas nas quais a biblioteca .a anterior e a atual estavam listadas, enquanto a anterior não existia mais. A remoção da biblioteca de lá resolveu o problema.


1

O meu caminho

  1. crie um novo projeto e instale o pod, ele poderá ser executado sem erros.

  2. Copie o texto em "Outros sinalizadores de vinculador" no novo projeto para o projeto antigo. Faça projeto antigo para o mesmo novo projeto.

  3. Marque "Caminhos de pesquisa de cabeçalho" também.


1

Para mim, isso é trabalhado. Alterei o nome do meu aplicativo de someApp para otherApp. E estou usando cápsulas de cacau para integração de vários serviços de terceiros. Então, por causa desses 2 arquivos libPod adicionados (como eu mudei o nome e o destino do aplicativo). Finalmente tive que remover um libPod. E funcionou.

target-> Construir fases-> Vincular binário com bibliotecas


1

Eu recebi o mesmo erro.

O problema : criei um espaço de trabalho separado e adicionei meu projeto existente a ele. Eu recebi o erro quando trabalhei nesse espaço de trabalho.

A correção : Mais tarde, descobri que o Espaço de Trabalho é criado automaticamente dentro do projeto existente quando as dependências são adicionadas. E tem que trabalhar nesse espaço de trabalho.


Esta resposta não indica claramente como consertar a pergunta que foi feita
Mark

1

A solução abaixo funcionou para mim na versão core-plot 2.3. Faça as alterações abaixo na seção de outros sinalizadores de vinculador.

1.Adicione $ (herdado) e arraste este item para a posição superior 2. Remova o prefixo "Pods-" de -l "Pods-fmemopen", l "Pods-NSAttributedStringMarkdownParser" e -l "Pods-MagicalRecord".

se o problema persistir, finalmente veja se PODS_ROOT está definido ou não. Você pode verificá-lo na seção definida pelo usuário.


1

Eu tive o mesmo problema

instalação do pod e atualização do pod na linha de comando resolvem meu problema


1

Se o projeto usa CocoaPods, lembre-se de sempre abrir o arquivo .xcworkspace em vez do arquivo .xcodeproj. Se você estiver usando .xcworkspace, reinstale o arquivo pod removendo os pods e insira-os novamente e instale-o !!! isso funcionou para mim

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.