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'
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
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:
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:
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:
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:
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".
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) ..
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:
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.
J'ai un problème similaire c'est ce qui a fonctionné:
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)Xcode->Window->Organizer
et sélectionnez l’onglet Projects
. Trouvez ensuite votre projet et supprimez derived data
du projet.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.
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".
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.
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 .. :(
Cela fait ma journée!
pod install
dans votre dossier de projetVous pouvez essayer ce qui suit. Cela s'est arrangé pour moi.
Les plugins seront retirés des cocoapods pour votre projet et seront installés récemment.
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
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.
Accédez à l'onglet Phase de construction dans les paramètres du projet pour la cible Qui pose problème.
Supprimez les sections "Vérifier le manifeste des pods" et "Copier les pods Ressources".
À l'intérieur de "Link Binary With Libraries", supprimez libPods-YourTarget.a.
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)
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.
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.
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?
Pour me débarrasser de cette erreur, je devais supprimer le répertoire Pods
et supprimer le fichier Podfile.lock
.
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.
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
gem install xcodeproj
peut vous aider.
Voir L'installation du pod échoue avec abandon - Nouveau projet Swift .
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:
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.
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.
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!
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.
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
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é