Erros do CocoaPods na criação do projeto

178

Não consigo criar um projeto que use o CocoaPods. Eu recebo os seguintes erros:

diff: /../Podfile.lock: No such file or directory
diff: Manifest.lock: No such file or directory error: 
The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.`

$ pod installparece funcionar bem e adiciona um Podsprojeto ao meu espaço de trabalho. Eu tentei, $ pod updatemas isso não ajuda.

Parece que PODS_ROOTnão está sendo definido.

Podfile:

platform :ios, '6.0'

workspace 'Example.xcworkspace'
xcodeproj 'example/Example.xcodeproj' 

pod 'TestFlightSDK', '~> 1.3.0-beta.5'
pod 'TestFlightLogger', '~> 0.0.2'
pod 'CocoaLumberjack', '~> 1.6.2'
pod 'Reachability', '~> 3.1.0'
pod 'SBJson', '~> 3.2'
pod 'MKMapViewZoom', '~> 1.0.0'
Undistraction
fonte
3
Um simples "pod instalar" corrigir isso :)
onmyway133
Importante! [!] From now on use MyProject.xcworkspace.não te velho `.xcodeproj '
Dawid Drozd
Quando você testar em um emulador não há apenas uma tela branca embora
Designerd

Respostas:

171

Eu tive um problema semelhante quando fiz grandes alterações no meu Podfile. Minha solução foi remover o arquivo da área de trabalho e executar pod installnovamente:

rm -rf MyProject.xcworkspace
pod install
asgoth
fonte
17
Significa que os cocoapods não estão instalados corretamente. executarsudo gem install cocoapods
asgoth
4
gem install cocoapodsé ainda melhor. Na maioria das vezes sudonão deve ser necessário com gemas.
precisa
5
Sua resposta fez o meu dia. Fiquei preso por horas.
Tirando o
Obrigado por isso, ele corrigiu o erro. FWIW, recebi o erro depois de fazer umgem update cocoapods
rounak
Corrigido o problema. Obteve o erro ao executar "update pod"
swebal
68

TLDR: É mais provável que seja um erro no Xcode e fechar e reabrir o projeto geralmente é a correção mais simples. Supondo que todo o resto esteja configurado corretamente .


Ocasionalmente, recebo o mesmo erro ao excluir o Podsdiretório e depois executá-lo pod install.

Tudo parece correto nas informações do projeto:

insira a descrição da imagem aqui

No entanto, quando vou para as Configurações de Compilação Definidas pelo Usuário do destino, a entrada PODS_ROOT está totalmente ausente ou está vazia para uma ou mais configurações. O que causa o seguinte erro na compilação:

insira a descrição da imagem aqui

A correção mais simples é fechar o projeto no Xcode e reabri-lo .

Se você acessar as Configurações de compilação do destino e filtrar Tudo , agora verá a PODS_ROOTentrada sem erros:

insira a descrição da imagem aqui

Agora deve ser construído sem erros.


Nota: Até o exemplo oficial de AFNetworking para iOS do Cocoa Pods tem esse problema, o que me leva a acreditar que é um bug do Xcode.

Uma correção alternativa é alterar manualmente a configuração para Nonee retornar ao seu valor original:

insira a descrição da imagem aqui

Sensível
fonte
1
Isso acabou por ser para mim! Meu $ PODS_ROOT foi definido incorretamente
Alex Ryan
Após uma longa pesquisa para corrigir, consegui fazê-lo sem erros, graças à sua solução. Eu apenas tive que alterar configurações para Nenhum e de volta ao Pods
Glogo
Isso é bom colocar ninguém ajudou.
32

Vá para o destino Build Settingse verifique se o valor PODS_ROOTé igual ${SRCROOT}/Podsna seção "Definido pelo usuário".

insira a descrição da imagem aqui

Jagie
fonte
Funciona bem. Isto é o que era necessário.
pr4n
Eu tive que adicionar PODS_ROOTao meu alvo com este caminho e Viola (Eu também acrescentou que para header search pathscomo "$ (PODS_ROOT)" recursiva
Jacksonkr
Não funcionou para mim.
30

update: a podfile.locké necessário e não deve ser ignorado pelo controle de versão; ele controla as versões das bibliotecas instaladas em uma determinada instalação de pod. (É semelhante ao gemfile.lock e composer.lock para gerenciamento de dependências rails e php, respectivamente). Para saber mais, leia os documentos . O crédito vai para cbowns .


No meu caso, o que fiz foi fazer uma limpeza doméstica no meu projeto (ou seja, ramificar os testes de integração como um submódulo git .. remover arquivos duplicados etc.) .. e enviar o resultado final para um repositório remoto git .. todos os clientes que clonaram meu repositório sofreram com o erro acima. Inspirado pelo comentário de Hlung acima, percebi que havia alguns scripts de pods pendentes que tentavam executar em arquivos inexistentes. Então, fui para a fase de construção do alvo e excluí todas as fases restantes que têm algo a ver com as vagens de cacau (e o comentário de Hlung ele sugere a exclusão Copy Pods Manifest.locke copy pod resources... as minhas foram nomeadas diferentes, talvez porque eu esteja usando o Xcode 5 .. O ponto principal é excluir as fases de construção pendentes).

abbood
fonte
1
Não Podfile.locké para isso: leia a documentação da Cocoapods sobre "Trabalhando com equipes" para obter mais informações sobre isso.
Cbowns # 11/13
@cbowns você está absolutamente certo, obrigado pelo comentário. Eu atualizei minha resposta.
Abbood 11/11
12
Excluí meu arquivo xcworkspace e fiz a instalação do pod, mas ainda recebo a mesma mensagem de erro.
jowie
@owow mesmo aqui ... você pode me guiar se você tivesse resolvido isso.
Bandish Dave
28

Parece que o CocoaPods não definiu as configurações para o meu projeto. Eles precisam se basear no Pods.xcconfigque é encontrado no Pods/Target Support Files/Pods. Para que isso funcionasse, eu tinha que fazer o seguinte:

  1. Arraste esse arquivo para o meu projeto Xcode no Xcode, optando por não copiar.
  2. Agora, há uma referência em nosso projeto, podemos definir as configurações: insira a descrição da imagem aqui

Eu tive outro erro de compilação que pode ou não estar relacionado. O caminho para o script de shell definido no Copy Pods Resourcesestava incorreto.

"${SRCROOT}/Pods/Pods-resources.sh"

Resolvido incorretamente. Parecia que o SRCROOT estava adicionando um diretório extra que não existia no caminho. Então, eu codifiquei o caminho para a pasta Projeto.

Isso me permitiu construir.

Por que tantas coisas que deveriam economizar seu tempo acabam comendo tudo?

Nota: Consulte a resposta da @ abood para obter explicações.

Undistraction
fonte
27
Se você vir esse erro porque removeu todos os pods de um destino, não terá mais nenhum script de pod, mas ele ainda tentará executá-lo. Você terá que ir para a fase de construção de destino e excluir Copy Pods Manifest.locke Copy Pods Resourcesfases. E também remova libPods.ano Link Binary with Libraries.
precisa saber é o seguinte
@Hlung excelente comentário .. ele realmente aborda a causa raiz do problema, tentei as soluções acima e ainda acabei com um Podfile.lock (que a maioria dos .gitignorearquivos está configurada para ignorar ... e com razão) .. esse arquivo não deveria fique por aqui .. Se você escrevesse como resposta, eu daria um +1!
Abbood # 8/13
@abbood Escreva e eu lhe darei a vitória.
Undistraction
Só queria acrescentar que esse problema na página do Github do CocoaPods menciona a verificação das fases de compilação para provavelmente esse problema exato (ainda mais semelhante porque tenho vários destinos). Problema me fez rolar aqui ...
DanBlakemore 21/01
22

Eu tenho um problema semelhante, foi o que funcionou:

  1. No Xcode:
    • Limpar \ limpo
    • Excluir dados derivados no Xcode / Window / Organizer / Project / Your Project
    • Diretório de pod (contém arquivos de configuração, exclua arquivos e não apenas referências!)
    • Foram removidas todas as referências aos arquivos de configuração do pod para cada destino em Projeto / Configurações (depuração / liberação)
    • Removidos "Destinos / Recursos de fases / Recursos de pods de cópia" de todos os Destinos
    • Removidos "Destinos / Configurações de compilação / Definidos pelo usuário / PODS_ROOT" de todos os destinos
  2. Sair do Xcode
  3. No diretório do seu projeto:
    • Pods de rm -rf
    • (Opcional) rm -rf YourProject.xcworkspace
    • rm -rf Podfile.lock
  4. instalação do pod
  5. Abra YourProject.xcworkspace no Xcode
Tibidabo
fonte
4
Não remova arbitrariamente sua área de trabalho - Mesmo que sua área de trabalho tenha sido criada pelo Cocoapods, ela será mantida por você.
Joseph DeCarlo 29/07
Isso funcionou para mim, excluindo todos os arquivos relacionados a pods e pods reinstalados.
Leena
15

Eu me livrei do mesmo problema executando as seguintes etapas:

  • Xcode->Product->Clean Build Folder(mantenha pressionada a tecla alt no produto para vê-lo)
  • Abra Xcode->Window->Organizere selecione a Projectsguia. Em seguida, encontre seu projeto e exclua- derived data o.
Timuçin
fonte
1
Trabalhou para mim. Estava irritado. Agora feliz.
precisa saber é o seguinte
No meu caso, tive problemas com um projeto do github. Então eu tive que remover completamente o diretório do projeto (rm -rf), fiz o acima, descompacte o projeto, instale o pod e abri o xcworkspace e sem erros!
rharvey
Trabalhou para mim. Obrigado.
xevser
10

Simplesmente resolvido, fazendo o seguinte:

  • (sudo) gem instalar cocoapods

  • instalação do pod

  • limpar e construir

parece que o problema foi causado por um dos membros de nossa equipe ter uma instalação mais recente de gema de cocoapods.

Diego
fonte
1
Eu tive que reinstalar o cocoapods E reiniciar o XCode para resolver esse problema.
O Camster
Teve que correr gem install cocoapodse, em seguida, pod installe tudo o mais mencionado nesta discussão ...
Echelon
9

  1. abrir arquivo .xcodeproj em texto sublime
  2. remova essas duas linhas, se você tiver pastas de pods limpas, quero dizer, se você obteve os erros acima depois de remover a pasta de pods
Ivan Zhang
fonte
me dá uma biblioteca ld: não encontrada para -lPods - / * Nome do meu projeto * / Tests
SleepsOnNewspapers
Isso também me dará erros em futuras instalações de pods?
SleepsOnNewspapers
6

Teve o mesmo problema ao dizer /Pods/Pods-resources.sh: Nenhum arquivo ou diretório desse tipo, mesmo após a remoção de arquivos etc relacionados a pods.

Para se livrar dele, vá para target-> Build phase e, em seguida, remova a fase de build "Copy Pod Resources".

roshi
fonte
arrefecer correção, mas eu tenho medo depois do projeto e dados derivados de limpeza você pode perceber por que você precisa esta :)
Julian Król
Então eu recebo o arquivo ".h" não encontrado erro do fileName que usa o Pod
coolcool1994
4

Eu tive o mesmo problema recentemente. Eu tentei todos os conselhos possíveis, nada, exceto este plugin, funcionou para mim:

https://github.com/kylef/cocoapods-deintegrate

Após a limpeza da integração atual dos cocoapods, o que resta a ser excluído são Podfile, Podfile.lock e o .xcworkspace. Em seguida, basta instalar tudo de novo.

Espero ajudar alguém com isso.

Chiara
fonte
Esta foi a única coisa que consertou para mim.
Charlie
Eu estou feliz que eu poderia ajudar Charlie
Chiara
4

Este problema foi resolvido.

  1. Selecione o destino do seu projeto
  2. Selecione Configurações de compilação
  3. Abrir lista suspensa definida pelo usuário
  4. Altere o valor da chave PODS_ROOT para $ {SRCROOT} / Pods

Captura de tela para as etapas acima

Jayprakash Dubey
fonte
1
Eu gostei da sua. Mas ainda recebo o mesmo erro de merda. O que é isso!!! ninguém tem uma resposta correta sobre isso.
@YumYumYum: Em seguida, tente reinstalar seus pods.
Jayprakash Dubey
Tentei acima de todas as soluções, mas esta funcionou. No meu caso, restava definir o caminho em um release.
Ankit Kargathra
3

Eu acho que tem um bug aqui.
Para mim, excluo a Podspasta Podfile.locke faço pod installnovamente para resolver o problema.
Esta mensagem está ignorando .. :(

Johnny
fonte
2

Não foi muito intuitivo. Eu fui para as configurações básicas do projeto e depois codifiquei os caminhos para o meu pod.lock e pod.manifest em Check Pods Manifest.lock, porque eles permaneceram em pastas diferentes, de modo que meus caminhos eram assim:

diff "/Users/admin/Desktop/Experimental/projectfolder/Podfile.lock" "/Users/admin/Desktop/Experimental/projectfolder/Pods/Manifest.lock" > /dev/null
if [[ $? != 0 ]] ; then
    cat << EOM
error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.
EOM
    exit 1
fi
Vladimir Stazhilov
fonte
O script parece ser gerado pelo CocoaPod. Onde você colocou esse script?
Nickolas
2

Você pode tentar o seguinte. Consertou para mim.

  1. instalar gem instalar cocoapods-deintegrate
  2. instalar gem instalar cocoapods-clean
  3. Goto pod desintegrar
  4. pod clean
  5. instalação do pod

Os plugins serão removidos dos cocoapods do seu projeto e serão instalados recentemente.

MD Aslam Ansari
fonte
2

No meu caso, esse foi um alvo de teste que eu removi todos os pods de dentro do meu podfile (porque adicionei pods que mais tarde percebi que não eram necessários nesse alvo). Nenhuma das outras soluções aqui funcionou para mim.

  1. Vá para a guia Fases de construção nas configurações do projeto para o destino que está causando problemas.

  2. Exclua a seção chamada "Verificar pods manifesto" e "Copiar recursos de pods"

  3. Dentro de "Vincular binário com bibliotecas" remova libPods-YourTarget.a

  4. Nas configurações do seu projeto, na guia Informações, expanda "Configurações" e defina a configuração do destino como Nenhum para depuração e liberação. (Isso corrigirá alguns avisos de arquivo ausentes)

  5. Exclua os dados derivados do seu projeto (Janela> Projetos> Excluir [próximo ao seu projeto) e reinicie o Xcode. Criar / executar destino.

calço
fonte
2

Isto fez o meu dia!

  1. Excluindo o arquivo Podfile.lock na pasta do projeto
  2. Excluindo a pasta Pods na pasta do projeto
  3. Executar pod installna pasta do projeto
  4. Faça um "Limpar" no Xcode
  5. Reconstrua seu projeto
alitosuner
fonte
1

No meu caso, o problema estava no caminho errado. solução aqui http://guides.cocoapods.org/using/trou Troubleshooting.html

Se algo parece não funcionar, verifique primeiro se você não está substituindo completamente as opções definidas no arquivo Pods.xcconfig nas configurações de compilação do seu projeto. Para adicionar valores às opções das configurações de compilação do seu projeto, acrescente a lista de valores com $ (herdado) .

R00We
fonte
1

Eu tive esse problema.

A maneira como eu o corrigi foi excluindo completamente o Pod implementando e reimplementando-o. Certifique-se de excluir "Copy Pods Resources" e "Check Pods Manifest.lock" de "Build Fhases" em todos os destinos, conforme indicado aqui: Como remover o CocoaPods de um projeto?

dloomb
fonte
1

Para me livrar desse erro, eu precisava excluir o Podsdiretório e excluir o Podfile.lockarquivo.

BlackHatSamurai
fonte
Concordo com você, fiz tudo o que você fez, incluindo a remoção do arquivo da área de trabalho e funcionou para mim.
Alix
1

No meu caso, coloquei Podfile.lock & Manifest.lock no controle de origem, mas esqueci de adicionar os arquivos Pods-Project.debug (release) .xcconfig ao controle de origem (adicionando * .xcconfig a .gitignore) por engano. obteve os mesmos erros de compilação exatamente pelo mesmo motivo, PODS_ROOT não está sendo definido.

Portanto, se o objetivo é que, após a clonagem do repositório, o projeto possa ser executado e executado imediatamente, sem ter o CocoaPods instalado na máquina, você poderá adicionar o diretório Pods inteiro no controle de origem ou adicionar Podfile.lock, Manifest.lock, arquivos xcconfig do projeto e Pods arquivos xcconfig para controle de origem.

Não coloquei o .xcconfig privado que mescla as configurações de compilação com a configuração padrão do CocoaPods para o controle de origem.

Qiulang
fonte
1

Depois de passar horas, encontrei a solução, vá para "Build Fhases" e "Check Pods Manifest.lock" Tick "Executar script apenas ao instalar"

Me agradeça mais tarde ;)insira a descrição da imagem aqui

Abdul Hadi Siraj
fonte
1

Eu tive o mesmo problema com o meu projeto IONIC , tentei acima de todas as soluções, mas não tive sorte.

Se você ainda tiver o mesmo problema, verifique as condições meteorológicas abaixo das configurações presentes Build Settings -> User-Defined settingsou não

1. PODS_ROOT 2PODS_PODFILE_DIR_PATH

Se não estiver presente, adicione-o,

PODS_ROOT = ${SRCROOT}/Pods

PODS_PODFILE_DIR_PATH = ${SRCROOT}/

Resolverá o problema, o link da solução

Onkar
fonte
0

Criei vários destinos antes de usar pods. Mais tarde, quando comecei a compilar os outros destinos, tive que adicionar link_with com a lista de destinos no meu Podfile.

Vladimír Slavík
fonte
0

Eu tive o mesmo problema. Após refazer minhas etapas recentes, descobri que a adição de uma declaração de destino para um novo destino, seguida da execução, pod install,foi a causa do problema:

insira a descrição da imagem aqui

Redefinir minha ramificação e limpar meu projeto não funcionou, pois o Cocoapods modificou pelo menos um arquivo que não está sob controle de origem. Eu sei disso porque depois que redefinir a ramificação remota para uma confirmação antes de adicionar o destino extra e clonar novamente o repositório, o problema não existe mais.

Sheamus
fonte
0

Se você tem um alvo watchOS: descobri que, de repente, ter pods na extensão do relógio, mas não no próprio alvo do relógio, quebrou as coisas com o mesmo erro. A solução foi adicionar os pods ao alvo do relógio também.

xaphod
fonte
0

se você adicionou um novo destino depois de criar o Podfile, exclua a pasta e o espaço de trabalho Podfile, Podfile.lock, Pods e, em seguida, inicie pods -> e instale a instalação do pods

mohammad alabid
fonte
0

Depois de tentar o acima, percebi que estava recebendo um erro no pod install

[!] CocoaPods não definiu a configuração base do seu projeto porque seu projeto já possui um conjunto de configurações personalizadas.

Isso estava causando o erro, porque cocoapods não estava adicionando o arquivo .xcconfig ao meu projeto.

Para resolver isso, fui para a Infoguia do meu projeto. Defina meu Baseado no arquivo de configuração como Nonepara todos os esquemas e destinos. Então re-correupod install

Veja este link para mais informações. Aviso de Cocoapods - CocoaPods não definiu a configuração base do seu projeto porque porque seu projeto já possui um conjunto de configurações personalizadas

Matt Hudson
fonte
0

No meu caso, digitei acidentalmente um ponto desnecessário no final do arquivo de configuração que causou esse problema estranho. Verifique se o seu arquivo de configuração não contém erros!

Jidong Chen
fonte