Erreur: «Le sandbox n'est pas synchronisé avec le Podfile.lock…» après l'installation de RestKit avec des cocoapods


232

J'ai rencontré un problème étrange après avoir installé RestKit avec des cocoapods. après avoir résolu la dépendance RestKit pour mon projet avec des cocoapods et essayé de le construire, je fais face à cette erreur:

Le bac à sable n'est pas synchronisé avec le Podfile.lock. Exécutez «pod install» ou mettez à jour votre installation CocoaPods.

J'ai essayé de courir pod install, mais aucun changement.

Voici quelques clichés: entrez la description de l'image ici

entrez la description de l'image ici

  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

2
Avez-vous essayé Run 'pod install' or update your CocoaPods installation.comme suggéré par l'erreur?
Wain

3
absolument, je l'ai fait, mais pas de succès
Hashem Aboonajmi

1
Pouvez-vous publier la version de Restkit dans le Podfile.locket dans Pods/Manifest.lock? Cette erreur se produit lorsque ce ne sont pas les mêmes.
MishieMoo

oui, je les ai comparés, ils sont exactement identiques.
Hashem Aboonajmi

L'erreur au-dessus de l'erreur "sandbox" est "diff: commande introuvable" Je ne sais pas si la réinstallation de diff pourrait résoudre le problème, mais cela peut être un indice de ce qui se passe.
Thunder Rabbit

Réponses:


318

J'ai pu résoudre ce problème en mettant à jour CocoaPods.

I. Nettoyage du projet

  1. Dans le navigateur de projet, sélectionnez votre projet
  2. Sélectionnez votre cible
  3. Supprimez tous les libPods * .a dans les phases de construction> Lier le binaire aux bibliothèques

II. Mettre à jour CocoaPods

  1. Lancez Terminal et accédez au répertoire de votre projet.
  2. Mettre à jour CocoaPods à l'aide de la commande pod install

3
a fonctionné comme un charme, vous voudrez peut-être mettre à jour votre réponse, par exemple, exécutez l'installation du pod de commande
ManicMonkOnMac

18
Concernant I.3 - vouliez-vous dire la section «Construire les phases> Lier le binaire aux bibliothèques»?
kraftydevil

1
Lorsque j'exécute la commande pod install dans le répertoire du projet, j'ai reçu l'avertissement ci-dessous: L'utilisation de sources implicites a été déconseillée. Pour continuer à utiliser toutes les sources actuellement sur votre machine, ajoutez ce qui suit en haut de votre Podfile: source ' github.com/CocoaPods/Specs.git ' J'ai également ajouté ce lien dans le fichier pod mais la même chose s'est produite. veuillez suggérer.
Mitesh Khatri

En plus de cela, j'ai dû supprimer toutes les phases de construction liées à CocoaPod telles que «Check Pods Manifest.lock» et «Copy Pods Resources».
JVillella

17
@ Valery Pavlov Ces étapes ont fonctionné mais après un nettoyage réussi du projet, la construction échoue immédiatement avec les mêmes 3 erreurs dont je ne peux pas sembler me débarrasser ci-dessous. J'ai essayé de supprimer complètement tous les cocoapods, de réinstaller, de mettre à jour, de faire tout cela avec les redémarrages de xcode, etc. Tout cela dans le terminal fonctionne correctement mais la construction continue d'échouer. D'autres réflexions? Erreurs: diff: /../Podfile.lock: Aucun fichier ou répertoire de ce type diff: /Manifest.lock: Aucune erreur de fichier ou de répertoire de ce type: Le sandbox n'est pas synchronisé avec Podfile.lock. Exécutez «pod install» ou mettez à jour votre installation CocoaPods.
natur3

111

Après de nombreuses tentatives, j'ai réussi à résoudre ce problème. La variable $ {PODS_ROOT} n'a pas été définie et je fais le tour ci-dessous. Allez dans Build Phases -> Check Pods Manifest.lock et remplacez

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

à

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

Ça m'aide.


Pourquoi $ PODS_ROOT n'est pas réglé? Dois-je réinstaller les modules pour mon projet?
Petr Syrov,

2
La raison pour laquelle $ PODS_ROOT n'a pas été défini est principalement due au fait que le fichier .xcconfig généré par les cocoapods n'est pas appliqué à la cible de génération.
Fujia

@Fujia comment appliquer un fichier .xcconfig?
Darko Romanov

Dans mon cas, j'ai mis PODS_ROOT = ${SRC_ROOT}/Podsdans mon xcconfig pour le même effet.
grego

44

Si vous supprimez tous les pods de votre cible dans le Podfile, par exemple

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

vous devrez supprimer manuellement ces étapes de builds de vos phases de build cible Xcode :

  • Vérifiez Pods Manifest.lock
  • Copier les ressources du pod

Cocoapods (version stable actuelle 0.37.2) n'effectue pas ce nettoyage lorsque vous exécutez pod install.


Cela a fonctionné pour moi. J'étais en train de migrer vers swift 2 et j'avais commenté tous les pods - je viens de réactiver l'un des pods plutôt que de jouer avec la suppression des phases de construction.
brian.clear

bingo! j'ai passé des heures à retirer mon espace de travail, à réinstaller des pods, etc. et rien d'autre n'a fonctionné.
Oren

35

Je cherchais depuis des heures et j'ai trouvé les solutions suivantes:

Dans mon cas, la méthode 1 fonctionne.

Méthode 1:

  1. choisissez la cible> allez dans Build Phrases > cliquez sur Link Binary With Libraries > supprimez tous les fichiers libPods.a
  2. ouvrez Terminal> directement sur votre projet> lancez:

     pod install
    
  3. projet de nettoyage et de construction

réf.1

Méthode 2:

  1. ouvrez Terminal> directement sur votre projet> lancez:

    pod deintegrate --verbose    
    pod install --verbose
    

réf.2

Méthode 3:

  1. choisissez la cible> allez dans Paramètres de construction > cliquez sur le signe "+"
  2. ajouter 2 paramètres définis par l'utilisateur: [à gauche = à droite]

    PODS_ROOT = ${SRCROOT}/Pods
    

    et

    PODS_PODFILE_DIR_PATH = ${SRCROOT}/
    

réf.3


J'ai essayé toutes les autres solutions mais rien n'a fonctionné. La méthode 3 a fonctionné pour moi.
Vinner

25

La suppression des pods du projet et la réinstallation ont fonctionné pour moi.

Il y a un beau référentiel GitHub qui peut supprimer complètement les pods du projet.

Gardez simplement la sauvegarde de votre PodFile et exécutez les commandes ci-dessous.

  • gem installer des cocoapodes-désintégrer
  • gem installer des cocoapods-clean
  • Accédez au répertoire du projet et exécutez pod deintegrate
  • Exécutez à nouveau pod propre
  • Exécutez l' installation du pod

Nettoyez et courez.


1
Vous êtes génial, seul le vôtre a travaillé pour moi, merci beaucoup
albert sh

Après avoir exécuté ces commandes, j'obtiens un message de génération réussi, mais maintenant, rien ne semble fonctionner sur le simulateur ni sur la console. Savez-vous pourquoi cela s'est produit?
Jorge Barrios

ATTENTION: Build fonctionne, mais le pod clean a disparu de la cible du projet. Aucune archive n'a été générée ni créée d'application.
Ruben

@Ruben le contenu disparu se régénérera à nouveau sur "pod install"
Teena nath Paul

Malgré cela, après avoir effectué les étapes que vous avez mentionnées, l'icône de mon application n'apparaît plus comme projet principal ... Seul le logo cordova apparaît, et aucune génération ou archive n'est générée.
Ruben

12

Après avoir changé le nom de la cible

Mon problème était xcconfig avec d'anciens noms de cible.

  • Je suis allé dans un fichier projet -> info -> configuration
  • Suppression de l'ancien xcconfig (débogage et libération)
  • installation de pod

Il serait mis à jour vers de nouveaux.

Aussi, si vous aviez des fichiers .h manquants, c'est la raison (le chemin de recherche de l'en-tête des pods est dans ces xcconfig)


Choisir a également Nonefonctionné pour moi. J'avais du mal avec cela pendant une journée à essayer d'intégrer le SDK Gimbal2 dans un projet Ionic4.
Russ

9

Si vous voyez une erreur comme la suivante:

diff: /../Podfile.lock: Aucun fichier ou répertoire de ce type diff: /Manifest.lock: Aucune erreur de fichier ou de répertoire de ce type: Le sandbox n'est pas synchronisé avec Podfile.lock. Exécutez «pod install» ou mettez à jour votre installation CocoaPods.

Ensuite, il y a un problème avec les Cocoapods dans votre projet. Parfois, les cocoapods peuvent se désynchroniser et vous devez réactiver les cocoapods. Vous devriez pouvoir résoudre cette erreur en:

  1. Suppression du fichier Podfile.lock dans votre dossier de projet
  2. Suppression du dossier Pods dans votre dossier de projet
  3. Exécutez 'pod install' dans votre dossier de projet
  4. Faire un "nettoyage" dans Xcode
  5. Reconstruisez votre projet

2
Merci beaucoup. Tu as fait ma journée. Rien d'autre n'a fonctionné dans mon projet Flutter.
nbloqs

C'est aussi la seule solution qui a fonctionné pour moi. Suppression de Podfile.lock. Soyez averti que vous pourriez obtenir des mises à niveau de version inattendues en faisant cela.
santamanno

pour flutter: exécutez pod installdans votre flutter_project / ios
Kirill Karmazin

5

Dans mon cas, j'ai eu la même erreur après avoir intégré l'application WatchKit. Pour résoudre le problème, je devais ajouter les deux cibles de WatchKit dans 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: Peut-être que cela m'est arrivé parce que j'ai installé par erreur des pods pour la MyProject WatchKit Appcible au départ.


Je pense que vous avez mis le doigt sur la tête;)
Hackmodford

4

J'ai trouvé ma solution: Exécuter: pod updateau lieu de pod install. L'erreur a été corrigée!


Bien. Cela mettra à jour les modules obsolètes, alors assurez-vous que c'est ce que vous voulez.
ff10

4
  • Allez dans Build Phases -> Check Pods Manifest.lock
  • Remplacer
${PODS_ROOT}/Manifest.lock

avec:

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

Vérifiez l'image:

entrez la description de l'image ici


Cela a fonctionné pour moi dans une version iOS de Cordova, alors que la réponse acceptée n'a pas fonctionné.
Bastian Blankenburg

3

J'ai rencontré ce problème avec un fichier xcconfig mal configuré.

Le xcconfig généré par Pods n'était pas correctement inclus dans le xcconfig personnalisé que j'utilisais. Cela a entraîné la non-définition de $ PODS_ROOT, ce qui a entraîné diff "/../Podfile.lock" "/Manifest.lock", pour des raisons évidentes, l'échec de Pods qui interprète mal un problème de synchronisation.


3

Pour moi, le problème est que j'ai créé une nouvelle cible dans mon application en dupliquant une cible existante, mais j'ai oublié d'ajouter la cible à la Podfile. Pour une raison quelconque, la cible clonée a fonctionné pendant des jours sans problème, mais après un certain temps, elle n'a pas pu être générée par cette erreur. J'ai dû créer une nouvelle entrée cible pour ma cible de projet cloné dans le Podfile puis exécuter pod install.


2

Si vous téléchargez le projet depuis github ou copiez depuis un autre endroit, alors la bibliothèque de dépendances n'existe pas, il y aura ce problème.

Il vous suffit de vous rendre cdsur le project/project_name directoryterminal d'entrée lspour vérifier s'il existe un Podfilefichier.

s'il existe Podfile, il suffit d'installer les dépendances:

pod install

Merci - cela m'a vraiment beaucoup aidé lorsque j'exécutais les exemples de flutter téléchargés depuis leur site Web github et j'avais reçu la même erreur. J'ai navigué vers le dossier ios pour chaque dossier d'exemple de flutter et j'ai fait l'installation du pod, puis l'application flutter a fonctionné.
Simon

heureux de vous aider.
avion

2

J'ai tout essayé, mais le problème a persisté. Après cela, je l'ai fait et cela a fonctionné dès que possible (aussi lisse que possible).

  1. Ouvrez le fichier .xcworkspace.
  2. Passez au système de génération hérité si vous utilisez Cordova sur Xcode 10.
  3. Accédez à la cible / au projet de Podfile. Sélectionnez Traget de déploiement comme 11+
  4. Ensuite, changez le débogage et la version en Pods-.build/release. C'était App.debug / release dans mon cas. J'espère que ça aide. CHangez la version de débogage dans le pod

2

Ma réponse de travail est:

  1. Installez la mise à jour de vos cocoapods par cette commande: pod update
  2. Installez vos nouveaux pods par cette commande. installation de pod
  3. Dernière commande: sudo gem install cocoapods.

2

Rien de tout cela n'a fonctionné pour moi à partir de ces réponses. J'ai dû recréer le projet en exécutant cordova platform add ios. Ce que j'ai remarqué, même un projet fraîchement généré avec (dans mon cas) des pods Firebase a causé le message d'erreur à maintes reprises. À mon avis, cela ressemble à un bogue pour certains pods (Firebase, RestKit) dans Xcodeou CocoaPods. Pour que les pods soient inclus, je pouvais simplement modifier config.xmlet exécuter mon cordova platform add iOS, ce qui faisait tout pour moi automatiquement. Je ne sais pas si cela fonctionnera dans tous les scénarios.

Edit: J'en avais un Podfiledu précédent iOS/ Xcode, mais le plus récent a # DO NOT MODIFY -- auto-generated by Apache Cordovadans le Podfile. Cela a allumé une lumière dans ma tête pour essayer l'approche. Semble un peu trivial, mais fonctionne et mes Firebasefonctionnalités ont fonctionné.


1
C'est la seule méthode qui a fonctionné pour moi. J'ai essayé tous les autres. J'ai supprimé les plates-formes et j'ai réinstallé «cordova platform add ios». Moi aussi, je pense que j'avais une plate-forme / ios précédente que j'ai utilisée sur une version précédente de xcode.
Heath

1

Cela a fait ma journée!

  1. Suppression du fichier Podfile.lock dans votre dossier de projet
  2. Suppression du dossier Pods dans votre dossier de projet
  3. Exécutez l'installation de pod dans votre dossier de projet
  4. Faire un "nettoyage" dans Xcode
  5. Reconstruisez votre projet

J'approuve ce message! Aussi, si vous êtes sur Flutter, n'oubliez pas deflutter pub get
Kirill Karmazin

1

Quand tu fais

pod install --verbose

assure-toi:

1- vous êtes dans le bon répertoire. La plupart du temps, lorsqu'un projet github est téléchargé, il y aura un dossier maître. Vous devez être à l'intérieur du dossier du nom de projet réel (dossier maître / dossier de projet) dans le terminal avant d'appeler l'installation de pod --verbose

2- Supprimez l'ancien dossier de verrouillage du pod, puis nettoyez le projet à l'aide de xcode clean & do pod install.

3- Gardez votre RVM à jour.


1

Mon problème était la version cabosses de cacao , donc j'installé le dernier avec: sudo gem install cocoapods --pre Puispod update

Ça a marché pour moi


1

Les étapes qui ont fonctionné pour moi ( 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

Aussi make sure you open the .xcworkspace file rather than the project file (.xcodeproj) when working with pods. Cela devrait résoudre toutes les erreurs de liaison telles que «Échec de la commande Apple Mach -O Linker»


1

Si vous vous appliquez à la façon dont le nettoyage de projet et votre projet sont toujours en erreur.

Vous pouvez aller dans l'onglet Build Phases puis trouver Check Pods Manifest.locket supprimer le script.

Tapez ensuite la commande pour supprimer un dossier Podscomme celui-cirm -rf Pods

puis vous devez supprimer Podfile.lock par commande rm Podfile.lock

Probablement, sur la base d'une situation dans laquelle vous pouvez supprimer un fichier your_project_name.xcworkspace

Enfin, vous avez besoin de la commande pour installer Pod pod install --repo-update.

J'espère que cette solution vous parviendra. Bon codage :)


1

J'ai eu la même erreur. Je mets d'abord à jour les cocoapods en utilisant

sudo gem install cocoapods

puis installez les pods à l'aide de la commande d'installation de pod a fonctionné pour moi.


1

Veuillez suivre les étapes suivantes:

1: Suppression du fichier Podfile.lock dans votre dossier de projet

2: Suppression du dossier Pods dans votre dossier de projet

3: Exécutez 'pod install' dans votre dossier de projet

4: Faites un "nettoyage" dans Xcode

5: Reconstruisez votre projet


1

Pour moi, travaillant en flutter, la configuration n'a pas été ajoutée automatiquement en raison de la configuration existante.

Ajout #include "Pods/Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"à Flutter/Release.xcconfigetFlutter/Debug.xcconfig

résolu le problème.


1

Exécutez ceci et vos erreurs disparaîtront

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


1

J'ai rencontré ce problème dans un projet Flutter. Je viens d'ouvrir le module iOS dans xCode et Build Clean Folder a fonctionné pour moi.


1

Essayez de configurer la bonne cible dans Podfile, puis exécutez pod updateoupod install

cible de la plate-forme ios


1

J'ai eu le même problème avec Ionic-3, j'ai fait quelques étapes mentionnées ci-dessus, mais aucune d'entre elles n'a fonctionné pour moi.

Pour Ionic Supprimez la plate-forme ios

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

Ouvrez xcode puis essayez de construire. cela a fonctionné pour moi :-)


1

Correction de mon problème avec l'application ionique en installant cordova version 9, j'ai essayé toutes les solutions ci-dessus principalement liées à xcode ni travaillé pour mon application ionique

Si quelqu'un rencontre le même problème avec son application cordova, veuillez mettre à jour cordova 9 pour résoudre ce problème.


0

si vos dosettes sont vides

  1. supprimer les ressources des pods de copie et vérifier le manifeste des pods.
  2. verrouiller les paramètres des phases de construction de votre projet
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.