Erreurs de CocoaPods sur la construction du projet
je suis incapable de construire un projet qui utilise des CocoaPods. J'obtiens 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 bien fonctionner et ajoute un projet Pods
à mon espace de travail. J'ai essayé $ pod update
mais ça n'aide pas.
il semble que PODS_ROOT
ne soit pas fixé.
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'
29 réponses
j'ai eu un problème similaire quand j'ai fait des changements majeurs à mon Podfile. Ma solution a été de supprimer le fichier de l'espace de travail et d'exécuter pod install
de nouveau:
rm -rf MyProject.xcworkspace
pod install
TLDR: il s'agit très probablement d'un bogue avec Xcode et la fermeture et la réouverture du projet est généralement la solution la plus simple. En supposant que tout le reste est correctement configuré .
il m'arrive d'avoir la même erreur en supprimant le répertoire Pods
et en lançant pod install
.
tout semble correct dans le projet info:
cependant, lorsque je passe aux paramètres de construction définis par L'utilisateur de la cible, L'entrée PODS_ROOT est soit totalement manquante, soit vide pour une ou plusieurs configurations. Qui provoque l'erreur suivante sur build:
la solution la plus simple est de fermer le projet dans Xcode et le rouvrir .
si vous allez à la construction de la cible Paramètres et filtre sur tous , vous verrez maintenant la PODS_ROOT
entrée sans erreurs:
il devrait maintenant construire sans erreurs.
Note: même L'exemple AFNetworking iOS de Cocoa Pods a ce problème, ce qui me porte à croire qu'il s'agit d'un bug avec Xcode.
une solution alternative consiste à changer manuellement la configuration à None
, puis retour à sa valeur d'origine:
allez à la section Build Settings
de la cible et assurez-vous que la valeur de PODS_ROOT
égale ${SRCROOT}/Pods
dans la section" défini par l'utilisateur".
mise à jour: un podfile.lock
et ne devrait pas être ignoré par le contrôle de version, il garde une trace des versions de bibliothèques installées à une certaine pod installer. (Il est similaire à gemfile.lock et compositeur.lock pour la gestion des dépendances de rails et php, respectivement). Pour en savoir plus s'il vous plaît lire le docs . Le crédit va à cbowns .
dans mon cas, ce que j'ai fait, c'est que je faisais un peu de ménage pour mon projet (c'est-à-dire étendre les tests d'intégration comme un sous-module git.. suppression des fichiers dupliqués, etc.).. et a poussé le résultat final à un git remote repo.. tous les clients qui cloné mon repo souffert de l'erreur ci-dessus. Inspiré par le commentaire ci-dessus de Hlung , j'ai réalisé qu'il y avait des scripts de pod pendants qui tentaient de s'exécuter contre certains des fichiers inexistants. Donc je suis allé à ma phase de construction de cible, et a supprimé toutes les phases restantes qui avaient quelque chose à voir avec les gousses 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érents peut-être B / C j'utilise Xcode 5.. le but étant de supprimer ces phases de construction pendantes)..
il semble donc que les CocoaPods n'ont pas défini les Configurations pour 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, j'ai dû faire ce qui suit:
- faites glisser ce fichier dans mon projet Xcode en Xcode, en choisissant de ne pas le copier.
- maintenant il y a une référence dans notre projet, nous pouvons définir les configurations:
je puis avait une autre erreur de construction qui peut ou non avoir été liée. Le chemin vers le script shell défini dans le Copy Pods Resources
était incorrect.
"${SRCROOT}/Pods/Pods-resources.sh"
résolu incorrectement. Il semblait que SRCROOT ajoutait un dir supplémentaire qui n'existait pas dans le chemin. Donc j'ai codé le chemin vers le dossier du projet.
cela m'a permis de construire.
pourquoi tant de choses qui sont censées vous faire gagner du temps finissent-elles par vous ronger?
Note: s'il vous Plaît voir @abood de réponse pour l'explication.
j'ai un problème similaire, c'est ce qui a fonctionné:
- Dans Xcode:
- Propre
- Supprimer des Données Dérivées dans Xcode/Fenêtre/Organisateur/Projet/Votre Projet
- répertoire Pod (il contient des fichiers de configuration, supprimer des fichiers pas seulement des références!)
- supprime toutes les références aux fichiers de configuration de pod pour chaque cible dans le projet / Configurations (débogage/release)
- Supprimé "cibles/phases de construction/copier Pods ressources" de toutes les cibles "151930920 cibles "supprimées" / paramètres de construction / défini par L'utilisateur / PODS_ROOT "de toutes les cibles
- Quit Xcode
- dans l'Annuaire de vos projets:
- rm-rf Pods
- (optionnel) rm-rf YourProject.xcworkspace
- rm-rf Podfile.serrure
- pod installer
- Ouvrez Votre Projet.xcworkspace en Xcode
je me suis débarrassé du même problème en faisant les étapes suivantes:
-
Xcode->Product->Clean Build Folder
(maintenez alt sur le Produit pour le voir) - ouvrir
Xcode->Window->Organizer
et sélectionnerProjects
onglet. Ensuite, trouver votre projet et supprimerderived data
du projet.
Simplement résolu en procédant de la manière suivante:
-
(sudo) gem install cocoapods
-
pod installer
-
clean and build
il semble que le problème ait été causé par un des membres de notre équipe ayant une installation plus récente de cocoapods gem.
- ouvert .XCODEPROJ fichier dans le texte sublime
- supprimer ces deux lignes, si vous avez des dossiers pods propres, Je veux dire si vous avez les erreurs ci-dessus après que vous avez enlevé dossier pods
avait le même numéro disant /Pods/Pods-resources.sh: pas de tel fichier ou répertoire même après que les fichiers etc liés aux gousses ont été supprimés.
s'est débarrassé de lui en allant à la cible->phases de construction et puis en supprimant la phase de construction"copier Pod Resources".
j'ai eu le même problème récemment. J'ai essayé tous les conseils possibles, rien sauf ce plugin qui a fonctionné pour moi:
https://github.com/kylef/cocoapods-deintegrate
après le nettoyage de l'intégration actuelle des cocoapods, ce qui reste à supprimer sont Podfile, Podfile.serrure et de la .xcworkspace. Ensuite, il suffit de l'installer une fois de plus.
j'espère que je vais aider quelqu'un avec cette.
ce problème a été résolu.
- sélectionner cible de votre projet
- Sélectionner Paramètres De Construction
- ouvert défini par L'utilisateur liste déroulante
- Change value of key PODS_ROOT to ${SRCROOT} / Pods
je pense qu'il y a un bug ici.
Pour moi, je supprime le dossier Pods
et Podfile.lock
et je refais le pod install
pour résoudre le problème.
Ce message est ignorant..: (
ce n'était pas très intuitif. Je suis allé aux paramètres du projet de base, puis j'ai codé les chemins vers mon module.verrouillez la capsule.manifeste en vertu de Vérifier les Gousses Manifeste.lock, parce qu'ils sont restés dans différents dossiers en fait, donc mes chemins ressemblaient à ceci:
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
Vous pouvez essayer ce qui suit. Il fixe pour moi.
- install gem install cocoapods-deintegrate
- installer gem install cocoapods-clean
- goto pod deintegrate
- pod propre
- pod installer
les plugins seront supprimés des cocoapods pour votre projet et seront installés récemment.
dans mon cas, il s'agissait d'une cible de test que j'ai retiré toutes les gousses de l'intérieur de mon podfile (parce que j'ai ajouté des gousses dont je me suis rendu compte plus tard que je n'avais pas besoin dans cette cible). Aucune des autres solutions ici a fonctionné pour moi.
-
c'est la cause du problème.
-
supprimer la section intitulée" Manifeste des nacelles de contrôle "et" nacelles de copie". Ressources"
-
Dans "lien binaire avec les bibliothèques" supprimer libPods-YourTarget.a
-
dans les paramètres de votre projet dans L'onglet Info étendre "Configurations" et définissez la configuration de la cible à None pour debug et publier. (Cela permettra de corriger quelques fichier manquant mises en garde)
-
supprimer les données dérivées de votre projet (fenêtre > Projets > Supprimer [suivant pour votre projet) et redémarrez Xcode. Build / run cible.
cela a fait ma journée!
- suppression du fichier Podfile.verrouillez le fichier dans votre dossier de projet
- supprimer le dossier Pods dans votre dossier projet
- exécuter
pod install
dans votre dossier de projet - Faire un "Nettoyage" dans Xcode
- reconstruire votre projet
Dans mon cas, le problème était dans le mauvais sens. solution ici http://guides.cocoapods.org/using/troubleshooting.html
si quelque chose ne semble pas fonctionner, assurez-vous d'abord que vous êtes ne pas complètement supplanter toutes les options définies à partir des gousses.fichier xcconfig dans votre projet de construction de paramètres. Pour ajouter des valeurs aux options de votre paramètres de construction du projet, préparez la liste des valeurs avec $(hérité) .
j'ai eu ce problème.
la façon dont je l'ai corrigé était en supprimant complètement le Pod implémentant et re-implémentant. Assurez-vous de supprimer "copier Pods ressources" et "vérifier Pods manifeste.verrouiller" de "phases de construction" sur toutes les cibles comme indiqué ici: Comment supprimer CocoaPods d'un projet?
pour me débarrasser de cette erreur, j'ai dû supprimer le répertoire Pods
et supprimer le fichier Podfile.lock
.
dans mon cas, J'ai mis Podfile.lock & Manifest.verrouillez le contrôle source, mais j'ai oublié D'ajouter Pods-Project.debug(libération).XCCONFIG fichiers au contrôle source (en ajoutant par erreur *.xcconfig .gitignore), puis j'ai eu les mêmes erreurs de compilation avec exactement la même raison, PODS_ROOT n'est pas défini.
donc si le but est qu'après le clonage de la repo, le projet peut immédiatement construire et exécuter, sans avoir CocoaPods installés sur la machine, vous ajoutez soit entier Pods directory dans le contrôle source ou ajouter Podfile.verrouillage, manifeste.lock, les fichiers XCCONFIG du projet et les fichiers XCCONFIG des Pods pour le contrôle source.
Je n'ai pas mis le privé .xcconfig qui fusionne les paramètres de construction avec la configuration de CocoaPods par défaut pour le contrôle source.
j'ai créé plusieurs cibles avant d'utiliser des gousses. Plus tard, quand j'ai commencé à compiler les autres objectifs, j'ai dû ajouter link_with avec la liste des cibles dans mon Podfile.
j'ai eu le même problème. Après avoir retracé mes dernières étapes, j'ai trouvé que ajoutant une déclaration de cible pour une nouvelle cible, suivie de l'exécution pod install,
était la cause du problème:
la réinitialisation de ma branche et le nettoyage de mon projet n'ont pas fonctionné, puisque les Cocoapods ont modifié au moins un fichier qui est et non sous contrôle source. Je sais cela parce qu'une fois que j'ai réinitialisé la branche distante à un commit avant d'ajouter la cible supplémentaire, et re-cloné le repo, le problème n'existait plus.
si vous avez une cible watchOS: j'ai constaté que soudainement, ayant des gousses dans la montre extension mais pas dans la cible de montre elle-même cassé les choses avec cette même erreur. La solution était d'ajouter les gousses de la montre cible également.
gem install xcodeproj
peut vous aider.
Voir pod installation échoue avec abort - Nouvelle Swift projet .
si vous avez ajouté une nouvelle cible après la création de Podfile, il suffit de supprimer Podfile, Podfile.serrure, pods et espace de travail puis pods init - > puis mettez vos pods pod install
après avoir essayé ce qui précède, j'ai réalisé 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à une configuration personnalisé défini.
cela causait l'erreur, parce que les cocoapods n'ajoutaient pas le .xcconfig fichier de mon projet.
pour résoudre ce problème, je suis allé à l'onglet Info
de mon projet. Mettre mon Basé sur Fichier de Configuration à None
pour tous les schémas et cibles. Puis réédité pod install
Voir ce lien pour plus d'informations. avertissement Cocoapods-CocoaPods n'a pas défini la configuration de base de votre projet parce que votre projet a déjà un ensemble de configuration personnalisé
après avoir passé des heures j'ai trouvé la solution aller à " construire des Phases" Puis " Vérifier Les Gousses Manifestes.verrouillage" Cochez "exécuter le Script uniquement lors de l'installation"
j'ai eu le même problème avec mon projet ionique , j'ai essayé surtout des solutions mais pas de chance.
si vous avez toujours le même problème, vérifiez que les conditions météorologiques ci-dessous sont présentes dans Build Settings -> User-Defined settings
ou non
1. PODS_ROOT
2. PODS_PODFILE_DIR_PATH
Si pas présent, alors l'ajouter,
PODS_ROOT = ${SRCROOT}/Pods
PODS_PODFILE_DIR_PATH = ${SRCROOT}/
Il va résoudre le problème, la solution lien