Erro: "A sandbox não está sincronizada com o Podfile.lock…" após a instalação do RestKit com cocoapods

232

Eu encontrei um problema estranho depois de instalar o RestKit com cocoapods. depois de resolver a dependência do RestKit para o meu projeto com cocoapods e tentar construí-lo, enfrento este erro:

A sandbox não está sincronizada com o Podfile.lock. Execute 'pod install' ou atualize a instalação do CocoaPods.

Eu tentei correr pod install, mas nenhuma mudança.

Aqui estão algumas fotos: insira a descrição da imagem aqui

insira a descrição da imagem aqui

  PODS:
  - AFNetworking (1.3.3)
  - RestKit (0.20.3):
    - RestKit/Core
  - RestKit/Core (0.20.3):
    - RestKit/CoreData
    - RestKit/Network
    - RestKit/ObjectMapping
  - RestKit/CoreData (0.20.3)
  - RestKit/Network (0.20.3):
    - AFNetworking (~> 1.3.0)
    - RestKit/ObjectMapping
    - RestKit/Support
    - SOCKit
  - RestKit/ObjectMapping (0.20.3)
  - RestKit/Search (0.20.3):
    - RestKit/CoreData
  - RestKit/Support (0.20.3):
    - TransitionKit (= 1.1.1)
  - RestKit/Testing (0.20.3)
  - SOCKit (1.1)
  - TransitionKit (1.1.1)

DEPENDENCIES:
  - RestKit (~> 0.20.0)
  - RestKit/Search (~> 0.20.0)
  - RestKit/Testing (~> 0.20.0)

SPEC CHECKSUMS:
  AFNetworking: 61fdd49e2ffe6380378df37b3b6e70630bb9dd66
  RestKit: 1f181c180105a92f11ec4f6cd7de37625e516d83
  SOCKit: 2f3bc4d07910de12dcc202815e07db68a3802581
  TransitionKit: d0e3344aac92991395d4c2e72d9c5a8ceeb12910

COCOAPODS: 0.29.0
Hashem Aboonajmi
fonte
2
Você tentou Run 'pod install' or update your CocoaPods installation.conforme sugerido pelo erro?
Wain
3
absolutamente, eu fiz isso, mas sem sucesso
Hashem Aboonajmi
1
Você pode postar a versão do Restkit no Podfile.locke no Pods/Manifest.lock? Esse erro ocorre quando estes não são os mesmos.
MishieMoo 27/01
Sim, eu os comparei, eles são exatamente idênticos.
precisa saber é o seguinte
O erro acima do erro "sandbox" é "diff: comando não encontrado" Não sei se a reinstalação do diff pode corrigir o problema, mas pode ser uma dica do que está acontecendo.
Thunder Rabbit

Respostas:

318

Consegui consertar isso atualizando o CocoaPods.

I. Limpeza do Projeto

  1. No navegador do projeto, selecione seu projeto
  2. Selecione seu alvo
  3. Remova todos os libPods * .a em Fases de compilação> Vincular binário com bibliotecas

II Atualizar CocoaPods

  1. Inicie o Terminal e vá para o diretório do projeto.
  2. Atualize o CocoaPods usando o comando pod install
Mr. Fahrenheit
fonte
3
funcionou como um encanto, você pode querer atualizar sua resposta, digamos, executar comando pod instalar
#
18
Em relação a I.3 - você quis dizer a seção 'Build Fhases> Link Binary With Libraries'?
Kraftydevil
1
Quando executo o comando pod install no diretório do projeto que recebi abaixo, aviso: O uso de fontes implícitas foi preterido. Para continuar usando todas as fontes atualmente em sua máquina, adicione o seguinte na parte superior do seu Podfile: source ' github.com/CocoaPods/Specs.git ' Eu também adicionei esse link no arquivo pod, mas a mesma coisa aconteceu. por favor sugira.
Mitesh Khatri
Além disso, eu tive que remover todas as fases de construção relacionadas ao CocoaPod, como 'Check Pods Manifest.lock' e 'Copy Pods Resources'.
JVillella
17
@ Valery Pavlov Essas etapas funcionaram, mas após um projeto bem-sucedido ser limpo, a compilação falha imediatamente com os mesmos três erros que não consigo me livrar abaixo. Eu tentei remover completamente todos os cocoapods, reinstalar, atualizar, fazer tudo isso com xcode reinicia e etc. Tudo isso no terminal executa com êxito, mas a compilação continua a falhar. Mais pensamentos? Erros: diff: /../Podfile.lock: não existe esse arquivo ou diretório diff: /Manifest.lock: não existe esse arquivo ou diretório de erro: O sandbox não está sincronizado com o Podfile.lock. Execute 'pod install' ou atualize a instalação do CocoaPods.
Natur3
111

Depois de muitas tentativas, consegui resolver esse problema. A variável $ {PODS_ROOT} não foi definida e eu faço o truque abaixo. Vá para Build Fases -> Check Pods Manifest.lock e substitua

diff "${PODS_ROOT}/../Podfile.lock" "${PODS_ROOT}/Manifest.lock" > /dev/null

para

diff "${SRCROOT}/Podfile.lock" "${SRCROOT}/Pods/Manifest.lock" > /dev/null

Isso me ajuda.

Pavel Shorokhov
fonte
Por que $ PODS_ROOT não está configurado? Preciso reinstalar pods para o meu projeto?
Petr Syrov
2
O motivo pelo qual $ PODS_ROOT não foi definido é principalmente porque o arquivo .xcconfig gerado pelos cocoapods não é aplicado ao destino da compilação.
Fujia
@Fujia como aplico um arquivo .xcconfig?
Darko Romanov
No meu caso, configurei PODS_ROOT = ${SRC_ROOT}/Podsno meu xcconfig para o mesmo efeito.
grego
44

Se você remover todos os pods do seu alvo no Podfile, por exemplo,

target 'myTarget' do
pod 'great-stuff', '~> 4.0'  // you deleted this last pod
end

você precisará excluir manualmente essas etapas de criação das fases de construção de destino do Xcode :

  • Verificar Pods Manifest.lock
  • Copiar recursos do Pod

Cocoapods (versão estável atual 0.37.2) não executa essa limpeza quando você executa pod install.

100grams
fonte
Isso funcionou para mim. Eu estava migrando para o swift 2 e havia comentado todos os pods - acabei de ativar um dos pods novamente em vez de mexer na exclusão das fases de compilação.
Brian.clear
Bingo! Passei horas removendo meu espaço de trabalho, reinstalando pods, etc. e nada mais funcionou.
Oren
35

Eu estava procurando por horas e encontrei soluções da seguinte maneira:

No meu caso, o método 1 funciona.

Método 1:

  1. escolha o destino> vá para Build Phrases > clique em Link Binary With Libraries > remova todos os arquivos libPods.a
  2. abra Terminal> direcione para o seu projeto> execute:

     pod install
    
  3. limpar e construir o projeto

ref.1

Método 2:

  1. abra Terminal> direcione para o seu projeto> execute:

    pod deintegrate --verbose    
    pod install --verbose
    

ref.2

Método 3:

  1. escolha o destino> vá para Configurações de compilação > clique no sinal "+"
  2. adicione 2 configurações definidas pelo usuário: [à esquerda = à direita]

    PODS_ROOT = ${SRCROOT}/Pods
    

    e

    PODS_PODFILE_DIR_PATH = ${SRCROOT}/
    

ref.3

Eddie
fonte
Eu tentei todas as outras soluções, mas nada funcionou. O método 3 funcionou para mim.
Vinner
25

A remoção de pods do projeto e a reinstalação funcionaram para mim.

Existe um bom repositório GitHub que pode remover completamente os pods do projeto.

Apenas mantenha o backup do seu PodFile e execute os comandos abaixo.

  • gem instalar cocoapods-deintegrate
  • gem instalar cocoapods-clean
  • Vá para o diretório do projeto e execute o pod deintegrate
  • Executar novamente o pod clean
  • Executar instalação do pod

Limpe e corra.

Teena nath Paul
fonte
1
Vocês são grandes, apenas o seu funcionou para mim, muito obrigado
albert sh
Depois de executar esses comandos, recebo uma mensagem de compilação bem-sucedida, mas agora nada parece ser executado no simulador nem no console. Você sabe por que isso aconteceu?
Jorge Barrios
ATENÇÃO: A criação funciona, mas o pod limpo desapareceu do objetivo do projeto. Nenhum arquivo foi gerado nem o aplicativo foi construído.
Ruben
@Ruben o conteúdo desaparecido irá regenerar em "pod instalar" novamente
Teena Nath Paul
Apesar disso, após as etapas mencionadas, o ícone do meu aplicativo não aparecerá mais como o projeto principal ... Somente o logotipo cordova aparece e nenhuma compilação ou arquivo está sendo gerado.
Ruben
12

Depois de alterar o nome do destino

Meu problema foi xcconfig com nomes de destino antigos.

  • Foi projetar o arquivo -> info -> configuração
  • Removido o xcconfig antigo (Debug & Release)
  • instalação do pod

Seria atualizado para novos.

Além disso, se você tiver arquivos .h ausentes, esse é o motivo (o caminho de pesquisa do cabeçalho dos pods está nesses xcconfig)

avishic
fonte
Escolher Nonefuncionou para mim também. Eu estava lutando com isso por um dia tentando integrar o SDK do Gimbal2 em um projeto Ionic4.
Russ
9

Se você estiver vendo um erro como o seguinte:

diff: /../Podfile.lock: não existe esse arquivo ou diretório diff: /Manifest.lock: não existe tal arquivo ou diretório: O sandbox não está sincronizado com o Podfile.lock. Execute 'pod install' ou atualize a instalação do CocoaPods.

Depois, há um problema com o Cocoapods no seu projeto. Às vezes, os cocoapods podem ficar fora de sincronia e você precisa reiniciar os cocoapods. Você poderá resolver esse erro:

  1. Excluindo o arquivo Podfile.lock na pasta do projeto
  2. Excluindo a pasta Pods na pasta do projeto
  3. Execute 'pod install' na sua pasta do projeto
  4. Faça um "Limpar" no Xcode
  5. Reconstrua seu projeto
David
fonte
2
Muito obrigado. Você fez meu dia. Nada mais funcionou no meu projeto Flutter.
Nfloqs 25/09/19
Esta é a única solução que funcionou para mim também. Excluindo Podfile.lock. Esteja avisado de que você pode obter algumas atualizações inesperadas da versão ao fazer isso.
santamanno 03/03
para flutter: execute pod installno seu flutter_project / ios
Kirill Karmazin
5

No meu caso, recebi o mesmo erro depois de integrar o aplicativo WatchKit. Para resolver o problema, eu precisava adicionar os dois destinos do WatchKit no Podfile:

target 'MyProject WatchKit App' do
    platform :watchos, '2.0'
    shared_pods
end

target 'MyProject WatchKit App Extension' do
    platform :watchos, '2.0'
    shared_pods
end

PS: Talvez isso tenha acontecido comigo porque, MyProject WatchKit Appinicialmente, instalei pods para o alvo.

Shyngys Kassymov
fonte
Eu acho que você bateu o prego na cabeça;)
Hackmodford
4

Encontrei minha solução: Execute: em pod updatevez de pod install. O erro foi corrigido!

giapnh
fonte
Bem. Isso atualizará os pods desatualizados, portanto, certifique-se de que é isso que você deseja.
ff10 30/09/19
4
  • Vá para Build Fases -> Check Pods Manifest.lock
  • Substituir
${PODS_ROOT}/Manifest.lock

com:

${SRCROOT}/Podfile.lock" "${SRCROOT}/Pods/Manifest.lock

Verifique a imagem:

insira a descrição da imagem aqui

The_PratikshaK
fonte
Isso funcionou para mim em uma versão do Cordova para iOS, enquanto a resposta aceita não funcionou.
Bastian Blankenburg
3

Encontrei esse problema com um arquivo xcconfig configurado incorretamente.

O xcconfig gerado pelos Pods não foi #incluído corretamente na personalização do xcconfig que eu estava usando. Isso fez com que $ PODS_ROOT não fosse definido, resultando na falha diff "/../Podfile.lock" "/Manifest.lock", por razões óbvias, que os Pods interpretam mal como um problema de sincronização.

Mensly
fonte
3

Para mim, o problema era que eu criei um novo destino no meu aplicativo duplicando um existente, mas esqueci de adicionar o destino ao Podfile. Por alguma razão, o destino clonado funcionou por dias sem problemas, mas depois de um tempo não conseguiu criar por esse erro. Eu tive que criar uma nova entrada de destino para o meu destino de projeto clonado no Podfile e executar pod install.

gklka
fonte
2

Se você baixar o projeto do github ou copiar de outro local, a biblioteca de dependências não existe, haverá esse problema.

Você só precisa acessar cdo project/project_name directoryterminal, use lspara verificar se há um Podfilearquivo.

se existir Podfile, você só precisa instalar as dependências:

pod install
aeronave
fonte
Obrigado - isso realmente me ajudou muito quando eu estava executando os exemplos de vibração baixados do site do github e recebi o mesmo erro. Naveguei para a pasta ios para cada pasta de exemplo de vibração, instalei o pod e o aplicativo vibração funcionou.
Simon
Feliz em te ajudar.
aeronaves
2

Eu tentei de tudo, mas o problema persistiu. Depois disso, eu fiz isso e funcionou o mais rápido possível (o mais suave possível).

  1. Abra o arquivo .xcworkspace.
  2. Mude para o sistema de criação herdado se estiver usando o Cordova no Xcode 10.
  3. Vá para o destino / projeto do Podfile. Selecione Deployment traget as 11+
  4. Em seguida, altere a depuração e solte para Pods-.build/release. Foi App.debug / release no meu case.Pic anexado. Espero que ajude. Alterar a versão de depuração no pod
alegre
fonte
2

Minha resposta de trabalho é:

  1. Instale, atualize seus cocoapods por este comando: pod update
  2. Instale seus novos pods por este comando. instalação do pod
  3. Último comando: sudo gem install cocoapods.
Gurpreet Singh
fonte
2

Completamente nada funcionou para mim com essas respostas. Teve que criar o projeto novamente executando cordova platform add ios. O que eu notei, mesmo o projeto recém-gerado com (no meu caso) pods do Firebase causou a mensagem de erro repetidamente. Na minha opinião, parece um bug para alguns pods (Firebase, RestKit) em Xcodeou CocoaPods. Para incluir os pods, eu poderia simplesmente editar meu config.xmle executarcordova platform add iOS , o que fazia tudo automaticamente por mim. Não tenho certeza se ele funcionará em todos os cenários.

Edit: Eu tinha um Podfilede iOS/ anterior Xcode, mas o mais novo a partir de hoje tem # DO NOT MODIFY -- auto-generated by Apache Cordovano Podfile. Isso acendeu uma luz na minha cabeça para tentar a abordagem. Parece um pouco trivial, mas funciona e meus Firebaserecursos funcionaram.

Daniel Danielecki
fonte
1
Este é o único método que funcionou para mim. Tentei todos os outros. Excluí as plataformas e reinstalei o 'cordova platform add ios'. Eu também acho que tinha plataformas / ios anteriores que usei em uma versão anterior do xcode.
Heath
1

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. Execute a instalação do pod na pasta do projeto
  4. Faça um "Limpar" no Xcode
  5. Reconstrua seu projeto
alitosuner
fonte
Eu aprovo essa mensagem! Além disso, se você estiver no Flutter, não esqueçaflutter pub get
Kirill Karmazin
1

Quando você faz

pod install --verbose

certificar-se de que:

1- você está no diretório correto. Na maioria das vezes, quando um projeto do github é baixado, haverá uma pasta principal. Você precisa estar dentro da pasta de nome do projeto real (pasta master / pasta do projeto) no terminal antes de chamar a instalação do pod --verbose

2- Exclua a pasta antiga do bloqueio de pod e limpe o projeto usando xcode clean e faça a instalação do pod.

3- Mantenha seu rvm atualizado.

Gokhan Dilek
fonte
1

Meu problema era a versão vagens de cacau assim que eu instalei o mais recente com: sudo gem install cocoapods --pre Entãopod update

Isso funcionou para mim

DariusV
fonte
1

As etapas que funcionaram para mim ( XCode 8.3.3/XCode 9 beta with a Swift 3.1 project)

 - Navigate to your project directory
 - pod install //which then asks you to do the next step
 - pod repo update //takes a while to update the repo
 - pod update
 - pod install
 - Close Xcode session
 - Open and Clean the project
 - Build/Run

Também make sure you open the .xcworkspace file rather than the project file (.xcodeproj) when working with pods. Isso deve solucionar os erros de vinculação, como "O comando Apple Mach -O Linker falhou"

Naishta
fonte
1

Se você estiver aplicando a maneira como a Limpeza do Projeto e o seu projeto ainda estão errados.

Você pode ir para a guia Fases de construção e, em seguida, Localizar Check Pods Manifest.locke remover o script.

Em seguida, digite o comando para remover a pasta Podsassimrm -rf Pods

e, em seguida, você precisa remover o Podfile.lock por comando rm Podfile.lock

Provavelmente, com base em uma situação em que você pode remover o arquivo your_project_name.xcworkspace

Por fim, você precisa do comando para instalar o Pod pod install --repo-update.

Felizmente, esta solução vem com você. Feliz codificação :)

Cuong Nguyen
fonte
1

Eu tive o mesmo erro. Primeiro eu atualizo os cocoapods usando

sudo gem install cocoapods

em seguida, instale os pods usando o comando Pod install funcionou para mim.

Gurjinder Singh
fonte
1

Por favor, execute os seguintes passos:

1: Excluindo o arquivo Podfile.lock na pasta do projeto

2: Excluindo a pasta Pods na pasta do projeto

3: Execute 'pod install' na sua pasta do projeto

4: Faça uma "Limpeza" no Xcode

5: reconstrua seu projeto

IKKA
fonte
1

Para mim, trabalhando em flutter, a configuração não foi adicionada automaticamente devido à configuração existente.

Adicionando #include "Pods/Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"a Flutter/Release.xcconfigeFlutter/Debug.xcconfig

resolveu o problema.

Moritz Morgenroth
fonte
1

Execute isso e seus erros desaparecerão

rm -rf Pods && gem install cocoapods && pod install

Siraj Alam
fonte
1

Eu enfrentei esse problema em um projeto Flutter. Acabei de abrir o módulo iOS no xCode e o Build Clean Folder funcionou para mim.

Developine
fonte
1

Tente configurar o destino correto Podfilee, em seguida, execute pod updateoupod install

destino da plataforma ios

tyoc213
fonte
1

Eu tive o mesmo problema com o Ionic-3, fiz algumas etapas acima mencionadas, mas nenhuma delas funcionou para mim.

Para Ionic Remova a plataforma ios

$ ionic cordova platform remove ios
$ ionic cordova platform add ios

Abra o xcode e tente construir. isso funcionou para mim :-)

Rajat.r2
fonte
1

Corrigido meu problema com o aplicativo iônico instalando o cordova versão 9, tentei todas as soluções acima, principalmente ligadas ao xcode, nem funcionava para o meu aplicativo iônico

Se alguém enfrentando o mesmo problema com seu aplicativo cordova, atualize para cordova 9 para corrigir isso

Vikrant Satpute
fonte
0

se seus pods estão vazios

  1. remova os recursos dos pods de cópia e verifique o manifesto dos pods.
  2. bloquear das configurações da fase de construção do seu projeto
dewanshu sharma
fonte