web-dev-qa-db-fra.com

'pod install' ne met pas à jour un pod existant

J'essaie de mettre à jour mon pod en utilisant pod install et de constater qu'il ne se met pas à jour correctementsauf si je supprime le pod d'origine.

Y a-t-il une étape supplémentaire requise ou une erreur commune qui fait échouer les mises à jour?

37
Joey

Je ne sais pas de quelle version, mais si vous mettez à jour votre installation de cocoapods vers la dernière version, vous trouverez deux nouvelles commandes pour vous aider.

pod outdated

Ceci listera tous les pods pour lesquels des mises à jour sont disponibles.

pod update

Ceci mettra à jour les pods listés dans la commande précédente

85
Edward Huynh

Vous pouvez ajouter la balise verbose et voir si une erreur s’affiche lors de la mise à jour.

pod install --verbose

Utiliser --verbose est le meilleur moyen de savoir ce qui se passe. Peut-être qu’il ya un problème avec le dépôt avec lequel il tente de mettre à jour. Dur à dire.

6
Bill Burgess

Je pense que le lecteur de cette Question doit comprendre la différence entre 

installation pod vs mise à jour pod

De nombreuses personnes commençant par CocoaPods semblent penser que l’installation du pod n’est utilisée que la première fois que vous configurez un projet avec CocoaPods et que la mise à jour du pod est utilisée par la suite. Mais ce n'est pas le cas du tout.

  • Utilisez pod install pour installer de nouveaux modules dans votre projet. Même si vous avez déjà un fichier podfile et que vous avez déjà exécuté pod install auparavant; Ainsi, même si vous ajoutez/supprimez simplement des modules dans un projet utilisant déjà CocoaPods.
  • Utilisez pod update [PODNAME] uniquement lorsque vous souhaitez mettre à jour un pod spécifique vers une version plus récente. 
  • Utilisez pod update uniquement lorsque vous souhaitez mettre à jour chaque pod vers une version disponible plus récente. 

Chaque fois que la commande pod install est exécutée (et télécharge et installe de nouveaux pods), elle écrit la version installée, pour chaque pods, dans le fichier Podfile.lock. Ce fichier garde la trace de la version installée de chaque pod et verrouille ces versions . Lorsque vous exécutez pod install, il résout uniquement les dépendances des pods qui ne figurent pas déjà dans le Podfile.lock. Pour les pods répertoriés dans le Podfile.lock, il télécharge la version explicite listée dans le Podfile.lock sans essayer de vérifier si une version plus récente est disponible Pour les pods qui ne figurent pas encore dans le Podfile.lock, il recherche la version qui correspond à celle décrite dans le podfile (comme dans pod 'MyPod', '~>1.2')

5
Aamir

Si votre projet est configuré correctement }, vous devriez pouvoir supprimer tout le répertoire Pods et exécuter pod install. Je trouve que c'est parfois la meilleure solution lorsque vous rencontrez des problèmes avec des pods qui ne sont pas installés correctement.

Note: Si vous commencez à avoir des erreurs de ce type lors de la compilation:

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.

... vous devrez peut-être fermer et rouvrir le projet dans Xcode

Attention: assurez-vous que tous les fichiers de votre répertoire Pods vont être recréés avant de supprimer le répertoire Pods. (C’est-à-dire, assurez-vous de ne pas modifier ni ajouter manuellement de fichiers au répertoire Pods.)

0
Senseful