Ocorreu um erro ao arquivar um projeto. Este é o meu ambiente.
- Mac OS Lion
- Xcode 4.3.1
- iOS SDK 5.1
O destino de implantação do projeto é:
IPHONEOS_DEPLOYMENT_TARGET 3.2
O erro mostra:
ld: library not found for -lPods
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Acho que o Pods é o CocoaPods que eu usei para gerenciar as dependências do projeto XCode. https://github.com/CocoaPods/CocoaPods
Este é o meu Podfile
platform :ios
dependency 'libPusher', '1.1'
Não sei ao certo o que significa o erro?
Respostas:
Você está abrindo o espaço de trabalho (que foi gerado pelo CocoaPods) em vez do xcodeproj?
fonte
Podfile
, especifique a plataforma assim:platform :ios, :deployment_target => "3.2"
. Isso deve configurá-lo corretamente na próxima vez que você executarpod install
..xcworkspace
arquivo, não o arquivo.xcodeproj
. Dessa forma, além do seu projeto, o Xcode conhece o projeto noPods/
diretório e como construí-lolibPods.a
..xcodeproj
aberto, será necessário encerrá-lo antes de abrir o.xcworkspace
arquivo.Separei o aplicativo e os destinos de teste no Podfile usando
Isso resultou em dois novos produtos libPods-App.a e libPods-AppTests.a , respectivamente, e eles tornaram obsoleto o produto anterior libPods.a . Eu tive que remover este produto da seção Link Binary With Libraries da configuração Build Fhases de ambos os destinos.
fonte
Encontrei um problema semelhante hoje.
Preview
junto com os existentesDebug
eRelease
Agora, ao compilar nesta nova
Preview
configuração, o compilador não poderá vincular aos Pods e me enviar esta mensagem:A solução:
O que eu tinha que fazer era correr
novamente e, assim, configurando os cocoapods para a nova
Preview
configuração. Atualizou meu projeto, o espaço de trabalho e o arquivo de projeto do Pod e o problema desapareceufonte
Certifique-se de abrir
.xcworkspace
, não.xcodeproj
fonte
Não foi uma solução que funcionou para mim, isso é realmente insuportável, há um arquivo
libpods.a
(que era vermelho), eu o removi e tudo está funcionando bem! Um brinde a mim;)fonte
Eu dividi minhas listagens de pods
Podfile
para diferentes destinos, como:E correu um
pod install
Isso criou uma nova biblioteca
libPods-ABC.a
à qual meu binário tinha que se conectar. Mas o erro foi que ele não excluiu a biblioteca anterior, ou seja,libPods.a
.Solução: Remova a biblioteca
libPods.a
deBuild Phases
deLink Binary With Libraries
.fonte
Eu tinha um arquivo libPod.a antigo especificado (provavelmente causado por mim alterando os destinos).
Configurações do projeto -> Fases de construção -> Vincular binário a bibliotecas
Geralmente, os cocoapods incluiriam apenas uma biblioteca, como
libPods-target.a
oulibPods.a
. Eu o resolvi removendo a duplicata.fonte
Pods.debug
paraPods-MyApp.debug
, então agora eu só precisolibPods-MyApp.a
(havia um ícone "desbotado" para o antigolibPods.a
),se você estiver com problemas com isso no cocoapods v25 / Xcode 5
O projeto Pods Xcode agora define a configuração de compilação ONLY_ACTIVE_ARCH como YES na configuração de Depuração. Você precisará definir o mesmo em seu projeto / destino, caso contrário, a compilação falhará.
https://github.com/CocoaPods/CocoaPods/wiki/FAQ#running-into-build-failures-after-migrating-to-xcode-5-and-cocoapods-0250
ATUALIZAÇÃO Verifique se você tem as últimas gemas / cocoapods
Você deseja reconstruir o projeto usando o Pod Install para reconstruir o projeto.
fonte
Se o Xcode reclamar ao vincular, por exemplo, Biblioteca não encontrada para -lPods, ele não detectará as dependências implícitas.
Vá para Produto> Editar esquema Clique em Compilar Adicione a biblioteca estática de Pods e verifique se ela está no topo da lista Limpar e compilar novamente Se isso não funcionar, verifique se a fonte da especificação que você está tentando incluir foi puxado do github. Faça isso procurando em / Pods /. Se estiver vazio (não deveria estar), verifique se o ~ / .cocoapods / master //. Podspec possui o URL do hub git correto. Se ainda não funcionar, verifique as configurações dos locais de construção do XCode. Vá para Preferências -> Locais -> Dados Derivados -> Avançado e defina o local da construção como "Relativo ao Espaço de Trabalho".
http://docs.cocoapods.org/guides/getting_started.html
fonte
Eu tive o mesmo problema quando editei o Podfile adicionando o destino que eu estava usando sem um destino antes.
Podfile
Depois de me perguntar, descobri que, nas propriedades de destino >> guia Geral >> seção Frameworks e Bibliotecas Vinculadas, havia o novo libPods-xxxx.a e o antigo libPods.a
Acabei de remover libPods.a e tudo funcionou bem.
fonte
O wiki do CocoaPods no GitHub tem a resposta correta nas perguntas frequentes :
Product > Edit Scheme
Build
<Project Dir>/Pods/<Name of spec you are trying to include>
. Se estiver vazio (não deveria estar), verifique~/.cocoapods/master/<spec>/<spec>.podspec
se o URL do github está correto.Preferences -> Locations -> Derived Data -> Advanced
e defina o local da construção como "Relativo ao espaço de trabalho".fonte
Eu estava renomeando o projeto para "NBSelector" de "Partners".
Eu tive o erro "Biblioteca não encontrada para libPods-Partners" depois de renomear o projeto. O Xcode estava tentando vincular ao arquivo antigo Partners.a. Apenas remova-o se você tiver podInstalled após renomear.
fonte
O uso de ONLY_ACTIVE_ARCH = NO em todos os pods resolveu o problema para mim. Para tornar isso persistente, adicionei um gancho post_install ao meu Podfile:
pod install
e pronto.fonte
Você criou 'Distribuição' ou configuração semelhante para criar arquivos Ad-Hoc e App Store? Como muitos outros, segui as recomendações da Apple e apelidei de configuração 'Release', chamei de 'Distribuição' e defini diferentes regras de assinatura. Bem, talvez essa tenha sido uma recomendação antes que eles introduzissem esquemas e a opção "Distribuir" no Organizer.
Então eu tive o mesmo problema com os pods. Tudo funcionou bem ao depurar, mas o arquivamento falhou com erro de link. Depois de tentar isso e que mudei a configuração de arquivo morto do meu projeto original de 'Distribuição' para 'Release' e o erro de link desapareceu.
No entanto, o arquivo não apareceu no Organizer, embora eu pudesse localizá-lo no sistema de arquivos, mas tinha tamanho 0.
A etapa final para corrigir tudo isso foi alterar a configuração "Ignorar instalação" da configuração 'Liberar' para "NÃO". Observe que você deve fazer isso apenas no projeto principal, mas não no projeto Pods. Melhor deixar o projeto do Pods como está, pois ele é gerado toda vez que você executa o 'pod install'.
Atualização Acabei de receber uma resposta do CocoaPods devs Parece que não funciona para mim, pois eu tinha a configuração do Pods definida corretamente. Mas isso poderia ajudar outra pessoa.
fonte
No meu caso, o problema foi que o local dos Dados Derivados do Xcode foi definido como a opção "Legado". O destino CocoaPods (libPods.a) estava sendo construído corretamente, mas o Xcode estava procurando no lugar errado.
Mudar para "Exclusivo" (o padrão) resolveu o problema. Você pode fazer isso acessando Preferências> Locais e clicando no botão Avançado ....
fonte
Somente a adição de "Caminhos de pesquisa da biblioteca" (nas configurações de compilação do 'MyProject') a "Pods / build / Debug-iphonesimulator" funcionou para mim (ao usar o simulador).
Entendi a partir daqui: https://github.com/CocoaPods/CocoaPods/issues/121#issuecomment-5452473
fonte
Se você estiver arquivando para iOS7 e Xcode5 e tiver esses erros, consulte este link. Parece que a Apple está abandonando uma arquitetura que os casulos de cacau precisavam https://github.com/CocoaPods/CocoaPods/pull/1352
fonte
Descobri que selecionar "Localizar dependências implícitas" (no esquema de produto / edição) resolverá esse problema em vez de precisar adicionar pods como destino.
fonte
Passei por todas as respostas aqui, mas, para mim, era incrivelmente simples ... Vá para Target -> Build Fhases, remova libPods-YourProject.a e adicione-o novamente usando o "+". Não se preocupe com a biblioteca ser vermelha, tudo bem.
fonte
Eu usei a versão antiga do cocoapod depois de atualizar os cocoapods, ele sugere que eu atualize meu pod instalado por causa de grandes atualizações, pois eu atualizo após um longo tempo. Eu atualizá-lo e os pods da nova versão foram atualizados corretamente. Mas depois disso eu recebi o erro como
library not found for -lPods-xxxprojectName-xxxxxpodName
Depois de tentar tantas soluções dadas como resposta neste thred, nada disso funcionou para mim. Então eu fui para a configuração do meu projeto e descobri que o caminho dos pods estava alterado, o que estava acontecendo
Other Linker Flag
Verifique seu
Manage Schemes
nome correto do pod e compare-oOther Linker Flag
. Altere-o se não for semelhanteO caminho do pod antigo era
-l"lPods-xxxprojectName-xxxxxpodName"
Mas novos pods só foram
xxxxxpodName
substituídosOther Linker Flag
por um novo como abaixoAlterado para o caminho do pod
-l"xxxxxpodName"
e funcionou.Eu não sei o motivo perfeito por trás disso, mas pode ser que isso ajude alguém.
fonte
Abri a área de trabalho, mas recebi o mesmo erro.
Construir arquitetura ativa definida apenas como SIM
resolver meu problema.
fonte
Resolva-o seguindo as etapas abaixo:
fonte
No meu caso,
pod install
corrigimos o problema, depois de criar esquemas de distribuição e lançamento.fonte
Eu tenho o mesmo problema ao arquivar para enviar. A discussão sobre esse assunto pode ser encontrada aqui: https://github.com/CocoaPods/CocoaPods/issues/155
Em resumo, dois métodos funcionam para mim:
- platform :ios, :deployment_target => "5.0"
fonte
Usando o Xcode 5 com iOS 7
Foi o que fiz depois de ficar preso por uma hora. Remova o ARM64 de Configuração de construção> Arquitetura válida.
ADICIONADO: Além disso, no meu caso, não foi o local dos dados derivados. Eu escolhi exclusivo para o local da construção.
fonte
Se você estiver usando o iOS7 e o Xcode 5, faça:
fonte
Eu tentei CADA resposta neste tópico sem sucesso. Por fim, resolvi meu problema combinando o "Caminho dos produtos de construção de pré-configuração" no meu projeto de destino com o valor no projeto Pods. Acontece que eles estavam construindo em dois locais de saída diferentes. Nenhuma das outras sugestões neste tópico foi relevante para mim. Seria ótimo se o XCode fornecesse uma descrição útil do erro (como POR QUE ele não pode usar a lib - Arquivo não encontrado, Nenhuma arquitetura correspondente encontrada etc.).
fonte
Nesta edição, se você já instalou e atualizou o pod em seu sistema, o seu Xcode não conseguiu encontrar a biblioteca de Pods. Para resolver esse problema, verifique as seguintes causas que podem ocorrer:
fonte
tentar
link_with 'YouTarget1', 'YouTarget2' ...
Meu projeto funcionou, os alvos de repente pararam de compilar. Em seguida, adicionou "link_with" e retornou ao normal.
Aparentemente, agora apenas se conecta ao primeiro destino, é o que o link diz:
http://guides.cocoapods.org/syntax/podfile.html#link_with
fonte
Se você ainda está tendo esse problema, tente:
Fiz o trabalho para mim, espero que isso ajude você.
fonte