Le guide définitif de l’installation et de la mise à jour des pods

Gabrielle Earnshaw

Follow

Oct 9, 2018 – 5 min lu

La différence entre pod install et pod update est subtile, et il n’est pas toujours clair lequel vous devez utiliser. Mais avoir une bonne compréhension de ce que font ces commandes vous donne un contrôle beaucoup plus fin sur la façon dont les dépendances sont gérées dans votre projet, donc cela vaut la peine de connaître la différence.

Dans la première partie de cet article, je vous donnerai une liste de recettes montrant si vous devez exécuter pod install ou pod update dans certaines situations courantes. Puis, dans la deuxième partie, j’expliquerai pourquoi les différentes commandes font différentes choses, et comment CocoaPods utilise le fichier Podfile.lock pour que tout cela se produise.

Pour que ces recettes fonctionnent, assurez-vous que Podfile et Podfile.lock sont commises au contrôle de la source.

Vous configurez CocoaPods dans un projet pour la première fois et avez créé votre Podfile

pod install

Ceci installera la dernière version* de chacun des pods que vous avez spécifiés dans votre nouveau Podfile. Il créera également un fichier MyProject.xcworkspace s’il n’en existait pas déjà.

Vous avez ajouté un nouveau pod à votre Podfile

pod install

Ceci installera la dernière version* de tout nouveau pod ajouté à votre Podfile, laissant vos autres pods inchangés.

Si vous exécutez pod update à la place, il installera les nouveaux pods et mettra à jour chacun de vos pods existants à sa dernière version*.

Vous voulez obtenir la dernière version de tous les pods dans votre Podfile

pod update

Cela passera par tous vos pods et s’assurera que la dernière version* de chacun est installée dans votre projet.

Vous voulez obtenir la dernière version d’un seul pod dans votre Podfile

pod update SomePod

Cela fera en sorte que la dernière version* du pod que vous spécifiez soit installée, tout en laissant vos autres pods inchangés.

Vous travaillez avec un pod de développement et vous voulez obtenir vos derniers changements

pod update MyDevelopmentPod

Cela fera en sorte que la dernière version de votre pod soit installée, tout en laissant vos autres pods inchangés.

Vous avez téléchargé les sources d’un projet existant qui utilise CocoaPods

pod install

Cela installera tous les pods dans le Podfile aux versions exactes qui ont été précédemment installées dans cette coupe du code source.

Si vous exécutez pod update à la place, cela installera la dernière version* de chacun des pods dans le Podfile. Cela pourrait empêcher le projet de se construire si les dernières versions n’étaient pas compatibles avec les autres codes du projet. Je recommanderais d’exécuter pod install pour obtenir la construction du code, puis de mettre à jour les pods si nécessaire d’une manière contrôlée.

Vous écrivez un script pour construire un projet sur un serveur de construction

pod install

Cela installera tous les pods dans le Podfile aux versions exactes qui ont été installées dans la version en cours de construction. Ceci est important pour une construction stable, car ce sont les versions contre lesquelles le code a été développé, et cela signifie que chaque construction de cette coupe de code utilisera les mêmes versions de pods. Si vous deviez utiliser pod update à la place, votre construction pourrait potentiellement utiliser différentes versions de pods à chaque fois qu’elle se construit.

Xcode signale des erreurs de construction bizarres relatives aux pods

Cela se produit occasionnellement après la mise à jour des pods, ou après avoir basculé entre les branches d’un projet qui contiennent les mêmes pods à différentes versions.

Supprimez le répertoire /Pods, puis exécutez pod install

Cela réinstallera tous les pods dans le Podfile aux versions exactes qui étaient précédemment installées, et c’est généralement suffisant pour redresser tous les problèmes avec lesquels Xcode peut se retrouver.

Parfois, les gens suggèrent de supprimer le répertoire /Pods et le fichierPodfile.lock, puis d’exécuter pod install. Cela résoudra tous les problèmes avec Xcode, mais mettra également à niveau chacun des pods du Podfile à sa dernière version*.

Partie 2 : Comment cela fonctionne

La différence entre pod install et pod update réside dans la façon dont ils interagissent avec le fichier Podfile.lock. Ce fichier est utilisé pour stocker la version exacte de chaque pod qui est actuellement installé dans votre projet.

La façon la plus simple de comprendre comment cela fonctionne est de regarder le diagramme suivant (avertissement : il s’agit d’un simple schéma plutôt qu’un diagramme technique précis).

Pod install vs. pod update

pod update

pod update ignore Podfile.lock lors de la vérification des versions. Il recherche la dernière version disponible* d’un pod, et l’installe si elle n’est pas déjà installée.

pod install

pod install regarde d’abord dans Podfile.lock lors de la vérification des versions. Si une version du pod est listée dans Podfile.lock, il installera cette version exacte. Si ce pod n’est pas répertorié dans Podfile.lock (ou si Podfile.lock n’existe pas encore), il se comportera comme pour pod update, c’est-à-dire qu’il trouve la dernière version disponible* et l’installe.

Dans les deux cas, CocoaPods met ensuite à jour Podfile.lock avec tous les nouveaux numéros de version qui ont été installés.

C’est ce qui vous permet d’utiliser les versions de pods de manière cohérente à travers différentes installations d’un projet (c’est-à-dire.c’est-à-dire lors de l’installation à partir d’un dépôt, entre plusieurs membres de l’équipe ou sur un serveur de construction), et c’est la raison pour laquelle Podfile.lock devrait être commise au contrôle de la source.

Summary

Dans cet article, j’ai donné des recettes montrant s’il faut exécuter pod install ou pod update dans un certain nombre de situations courantes. J’ai ensuite décrit comment et pourquoi les deux commandes fonctionnent de manière différente. Si vous l’avez trouvé utile, veuillez lui donner un clap et / ou partager, et suivez-moi pour d’autres articles utiles.

admin

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.

lg