web-dev-qa-db-fra.com

Erreurs CocoaPods sur la construction du projet

Je ne parviens pas à construire un projet utilisant CocoaPods. Je reçois les erreurs suivantes:

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 install semble fonctionner correctement et ajoute un projet Pods à mon espace de travail. J'ai essayé $ pod update mais cela n'aide pas.

Il semble que PODS_ROOT ne soit pas défini.

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'
176
Undistraction

J'ai eu un problème similaire lorsque j'ai apporté des modifications majeures à mon fichier Podfile. Ma solution consistait à supprimer le fichier d'espace de travail et à relancer pod install:

rm -rf MyProject.xcworkspace
pod install
167
asgoth

TLDR: Il s'agit probablement d'un bogue avec Xcode et la fermeture et la réouverture du projet est généralement le correctif le plus simple. En supposant que tout le reste est configuré correctement .


Je reçois parfois la même erreur lors de la suppression du répertoire Pods, puis de l'exécution de pod install.

Tout semble correct dans les informations du projet:

enter image description here

Cependant, lorsque je vais dans les paramètres de construction définis par l'utilisateur de la cible, l'entrée PODS_ROOT est entièrement manquante ou est vide pour une ou plusieurs configurations. Ce qui provoque l'erreur suivante lors de la construction:

enter image description here

La solution la plus simple consiste à fermer le projet dans Xcode et à le rouvrir.

Si vous allez dans les paramètres Build de la cible et que vous filtrez sur All, vous verrez maintenant l'entrée PODS_ROOT sans erreur:

enter image description here

Il devrait maintenant construire sans erreurs. 


Remarque: Même l'exemple AFNetworking iOS officiel de Cocoa Pods présente ce problème, ce qui me laisse penser qu'il s'agit d'un bogue avec Xcode.

Un autre correctif consiste à modifier manuellement la configuration en None, puis à revenir à sa valeur d'origine:

enter image description here

68
Senseful

Accédez au Build Settings de la cible et assurez-vous que la valeur de PODS_ROOT est égale à ${SRCROOT}/Pods dans la section "Défini par l'utilisateur".

enter image description here

32
Jagie

update: un podfile.lock est nécessaire et ne doit pas être ignoré par le contrôle de version, il garde une trace des versions des bibliothèques installées lors de l'installation d'un certain pod. (Il est similaire à gemfile.lock _ et composer.lock pour Rails et la gestion des dépendances php, respectivement). Pour en savoir plus, veuillez lire les docs . Le crédit va à cbowns .


Dans mon cas, ce que j’ai fait, c’est que j’étais en train de faire le ménage de mon projet (c’est-à-dire en ramenant les tests d’intégration sous la forme d’un sous-module git. tous les clients qui ont cloné mon repo ont souffert de l'erreur ci-dessus. Inspiré par le commentaire de Hlung ci-dessus, je me suis rendu compte que certains scripts de pod pendants tentaient de s'exécuter sur des fichiers non existants. Alors je suis allé à ma phase de construction cible, et j'ai supprimé toutes les phases restantes qui avaient un rapport avec les cabosses de cacao (et le commentaire de Hlung, il suggère de supprimer Copy Pods Manifest.lock et copy pod resources .. les miens ont été nommés différemment peut-être parce que j'utilise Xcode 5. le but est de supprimer ces phases de construction en suspens) ..

30
abbood

Il semble donc que CocoaPods n’ait pas défini les configurations de mon projet. Ils doivent être basés sur le Pods.xcconfig qui se trouve dans le Pods/Target Support Files/Pods. Pour que cela fonctionne, je devais faire ce qui suit:

  1. Faites glisser ce fichier dans mon projet Xcode dans Xcode, en choisissant de ne pas copier.
  2. Maintenant, il y a une référence dans notre projet, nous pouvons définir les configurations: enter image description here

J'ai ensuite eu une autre erreur de construction qui peut ou peut ne pas avoir été liée. Le chemin d'accès au script Shell défini dans le Copy Pods Resources était incorrect. 

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

Résolu de manière incorrecte. Il semblait que SRCROOT ajoutait un répertoire supplémentaire qui n'existait pas dans le chemin. J'ai donc codé le chemin d'accès au dossier du projet.

Cela m'a permis de construire.

Pourquoi tant de choses censées vous faire gagner du temps finissent-elles par le dévorer?

Remarque: Veuillez consulter la réponse de @ abood pour obtenir des explications.

28
Undistraction

J'ai un problème similaire c'est ce qui a fonctionné:

  1. Dans Xcode:
    • Nettoyer
    • Supprimer les données dérivées dans Xcode/Window/Organizer/Project/Your Project
    • Répertoire Pod (il contient des fichiers de configuration, supprimez des fichiers et pas seulement des références!)
    • Suppression de toutes les références aux fichiers de configuration du pod pour chaque cible dans Project/Configurations (debug/release)
    • Suppression de "ressources/cibles de construction/phases de construction" de toutes les cibles
    • Suppression de "Cibles/Paramètres de construction/Défini par l'utilisateur/PODS_ROOT" de toutes les cibles
  2. Quitter Xcode
  3. Dans votre répertoire de projet:
    • pods rm -rf
    • (Facultatif) rm -rf YourProject.xcworkspace
    • rm -rf Podfile.lock
  4. installation de pod
  5. Ouvrez YourProject.xcworkspace dans Xcode 
21
Tibidabo

Je me suis débarrassé du même problème en suivant les étapes suivantes:

  • Xcode->Product->Clean Build Folder (maintenez la touche alt sur le produit pour le voir)
  • Ouvrez Xcode->Window->Organizer et sélectionnez l’onglet Projects. Trouvez ensuite votre projet et supprimez derived data du projet.
15
Timuçin

Simplement résolu en procédant comme suit:

  • (Sudo) gem installer des cocoapods

  • installation de pod

  • nettoyer et construire

il semble que le problème ait été causé par l'un des membres de notre équipe possédant une installation plus récente de gemme de cocoapodes.

10
Diego

  1. ouvrir le fichier .xcodeproj en sublime texte
  2. supprimer ces deux lignes, si vous avez des dossiers de pods propres, je veux dire si vous avez les erreurs ci-dessus après avoir supprimé le dossier de pods
9
Ivan Zhang

Avait le même problème en disant /Pods/Pods-resources.sh: Aucun fichier ou répertoire de ce type Même après que les fichiers etc. relatifs aux pods aient été supprimés.

Vous en êtes débarrassé en allant dans les phases cible-> de construction, puis en supprimant la phase de construction "Copier les ressources du pod".

6
roshi

Ce problème l'a résolu.

  1. Sélectionnez Target de votre projet
  2. Sélectionnez Build Settings
  3. Ouvrir la liste déroulante Défini par l'utilisateur
  4. Modifiez la valeur de la clé PODS_ROOT en $ {SRCROOT}/Pods

 Screenshot for above steps

4
Jayprakash Dubey

J'ai eu le même problème récemment. J'ai essayé tous les conseils possibles, rien sauf ce plugin a fonctionné pour moi:

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

Après le nettoyage de l'intégration actuelle des cocoapods, il ne reste plus qu'à supprimer Podfile, Podfile.lock et .xcworkspace. Ensuite, il suffit d'installer à nouveau.

J'espère que j'aiderai quelqu'un avec ceci.

4
Chiara

Je pense qu'il y a un bug ici.
Pour moi, je supprime le dossier Pods et le Podfile.lock et refait le pod install pour résoudre le problème.
Ce message est ignorant .. :(

3
Johnny

Cela 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 pod install dans votre dossier de projet
  4. Faire un "nettoyage" dans Xcode
  5. Reconstruisez votre projet
2
mstntsnr

Vous pouvez essayer ce qui suit. Cela s'est arrangé pour moi.

  1. installer gem installer cocoapods-deintegrate
  2. installer gem installer cocoapods-clean
  3. goto pod désintégrer
  4. pod nettoyer
  5. installation de pod

Les plugins seront retirés des cocoapods pour votre projet et seront installés récemment.

2
MD Aslam Ansari

Ce n'était pas très intuitif. Je suis allé dans les paramètres du projet de base, puis j'ai codé en dur les chemins d'accès à mes pod.lock et pod.manifest sous Check Pods Manifest.lock, car ils sont restés dans des dossiers différents.

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
2
Vladimir Stazhilov

Dans mon cas, c’était une cible de test dans laquelle j’avais retiré tous les pods de mon podfile (parce que j’avais ajouté des pods dont j’ai réalisé par la suite que je n’avais pas besoin de cet objectif). Aucune des autres solutions ici ne fonctionnait pour moi.

  1. Accédez à l'onglet Phase de construction dans les paramètres du projet pour la cible Qui pose problème.

  2. Supprimez les sections "Vérifier le manifeste des pods" et "Copier les pods Ressources".

  3. À l'intérieur de "Link Binary With Libraries", supprimez libPods-YourTarget.a.

  4. Dans les paramètres de votre projet dans l'onglet Info, développez "Configurations" et configurez La configuration de la cible sur Aucune pour le débogage et le Publié. (Cela corrigera quelques avertissements de fichiers manquants)

  5. Supprimez les données dérivées de votre projet (Fenêtre> Projets> Supprimer [suivant] pour votre projet) et redémarrez Xcode. Construire/exécuter la cible.

2
shim

Dans mon cas, le problème était dans le mauvais sens. solution here http://guides.cocoapods.org/using/troubleshooting.html

Si quelque chose ne semble pas fonctionner, assurez-vous d’abord que vous êtes ne remplace pas complètement les options définies dans le fichier Pods.xcconfig dans les paramètres de construction de votre projet. Pour ajouter des valeurs aux options de votre les paramètres de construction du projet, ajoutez la valeur $ (hérité) à la liste.

1
R00We

J'ai eu ce problème. 

J'ai corrigé le problème en supprimant complètement le pod qui l'implémentait et en le réimplantant. Assurez-vous de supprimer "Copy Pods Resources" et "Check Pods Manifest.lock" de "Build Phases" sur toutes les cibles, comme indiqué ici: Comment supprimer CocoaPods d'un projet?

1
dloomb

Pour me débarrasser de cette erreur, je devais supprimer le répertoire Pods et supprimer le fichier Podfile.lock

1
BlackHatSamurai

Dans mon cas, j’ai mis Podfile.lock & Manifest.lock dans le contrôle de source, mais j’ai oublié d’ajouter des fichiers Pods-Project.debug (release) .xcconfig au contrôle de code source (en ajoutant par erreur * .xcconfig à .gitignore), puis je Si vous rencontrez les mêmes erreurs de compilation avec exactement la même raison, PODS_ROOT n’est pas défini.

Donc, si l'objectif est qu'après le clonage du référentiel, le projet puisse immédiatement construire et s'exécuter, sans avoir CocoaPods installé sur la machine, soit vous ajoutez le répertoire Pods entier au contrôle de source, soit vous ajoutez Podfile.lock, Manifest.lock, les fichiers xcconfig du projet et Ajoute des fichiers xcconfig au contrôle de source.

Je n'ai pas mis le private .xcconfig qui fusionne les paramètres de construction avec la configuration par défaut de CocoaPods dans le contrôle de source.

1
Qiulang

si vous avez ajouté une nouvelle cible après avoir créé Podfile, supprimez simplement Podfile, Podfile.lock, le dossier Pods et l'espace de travail puis init pods -> puis mettez vos pods pod install

0
mohammad alabid
gem install xcodeproj

peut vous aider.

Voir L'installation du pod échoue avec abandon - Nouveau projet Swift .

0
Leo

J'ai eu le même problème. Après avoir retracé mes étapes récentes, j'ai constaté que l'ajout d'une déclaration de cible pour une nouvelle cible, suivi de l'exécution de pod install, était à l'origine du problème:

 enter image description here

La réinitialisation de ma branche et le nettoyage de mon projet n'ont pas fonctionné, car Cocoapods a modifié au moins un fichier qui est non sous contrôle de source. Je le sais car une fois que j'ai réinitialisé la branche distante sur un commit avant d'ajouter la cible supplémentaire et que j'ai cloné à nouveau le référentiel, le problème n'existait plus.

0
Sheamus

Si vous avez une cible watchOS: j'ai constaté que tout à coup, avoir des pods dans la montre extension mais pas dans la cible de la montre elle-même a cassé les choses avec cette erreur. La solution a été d’ajouter les pods à la cible de surveillance également.

0
xaphod

Dans mon cas, j’ai accidentellement tapé un point inutile à la fin du fichier de configuration qui a causé ce problème étrange. Assurez-vous que votre fichier de configuration ne contient aucune erreur!

0
Jidong Chen

J'ai créé plusieurs cibles avant même d'utiliser des pods. Plus tard, lorsque j'ai commencé à compiler les autres cibles, j'ai dû ajouter link_with avec la liste des cibles de mon fichier Podfile.

0

Après avoir passé des heures, j'ai trouvé la solution, allez à "Build Phases" Puis "Check Pods Manifest.lock" Cochez "Exécuter le script uniquement lors de l'installation"

Remercie moi plus tard ;)  enter image description here

0
Abdul Hadi Siraj

J'ai eu le même problème avec le projet mon IONIC, j'ai surtout essayé des solutions mais pas de chance. 

Si vous avez toujours le même problème, vérifiez la météo ci-dessous les paramètres sont présents dans Build Settings -> User-Defined settings ou non 

1 .PODS_ROOT 2 .PODS_PODFILE_DIR_PATH 

S'il n'est pas présent, ajoutez-le,

PODS_ROOT = ${SRCROOT}/Pods

PODS_PODFILE_DIR_PATH = ${SRCROOT}/

Cela résoudra le problème, la solution link

0
Onkar

Après avoir essayé ce qui précède, je me suis rendu compte que je recevais une erreur sur pod install

[!] CocoaPods n'a pas défini la configuration de base de votre projet parce que votre projet a déjà un jeu de configuration personnalisé.

Cela était à l'origine de l'erreur, car cocoapods n'ajoutait pas le fichier .xcconfig à mon projet.

Pour résoudre ce problème, je suis allé à l'onglet Info de mon projet. Définissez my Based on Configuration File sur None pour tous les schémas et toutes les cibles. Puis re-couru pod install

Voir ce lien pour plus d'informations . Cocoapods Avertissement - CocoaPods n'a pas défini la configuration de base de votre projet car votre projet contient déjà un jeu de configuration personnalisé

0
Matt Hudson