Je comprends que la commande suivante mettra à jour un pod: pod update <podname>
. Cependant, cela met également à jour les dépendances des autres modules (modules qui n'étaient pas inclus dans la commande de mise à jour) que vous avez précédemment installés. Existe-t-il un moyen de mettre à jour un seul pod et de laisser toutes les autres dépendances tranquilles?
202
podfile.lock
. Voir le lien et la vidéo auxquels il fait référence.Réponses:
Assurez-vous que la dernière version de CocoaPods est installée.
$ pod update POD
a été introduit récemment.Consultez ce fil de discussion pour plus d'informations :
la source
$ pod update SomePodName
. Cependant, dans certains cas, CocoaPods tentera également de mettre à jour les dépendances des autres pods. Pour faire court, SomePodName n'est pas le seul pod qui sera mis à jour dans certains cas.pod install
il revient à sa version d'origine. Mais je ne veux pas perdre mes changementspod update
touche tout. Il ne fait pas ce qu'il dit sur l'étain et c'est très frustrant. Supprime au hasard les en-têtes des autres pods auxquels vous ne lui avez pas dit de toucher, etc.Pour installer un seul pod sans mettre à jour les pods existants-> Ajoutez ce pod à votre Podfile et utilisez:
Pour supprimer / mettre à jour un pod spécifique, utilisez:
Testé!
la source
C'est 2015
Donc, parce que
pod update SomePod
tout touche dans les dernières versions des cocoapods, j'ai trouvé une solution de contournement.Suivez les étapes suivantes:
Supprimer
SomePod
duPodfile
Courir
pod install
les pods seront désormais supprimés
SomePod
de notre projet et duPodfile.lock
fichier.Remettre
SomePod
dans lePodfile
Courez à
pod install
nouveauCette fois, la dernière version de notre pod sera installée et enregistrée dans le
Podfile.lock
.la source
pod update somepod anotherpod thirdpod
pour mettre à jour plusieurs pods à la fois :)SomePod
mise à jour de ses dernières dépendances ne mettrait-elle pas à jour une dépendance partagée deanotherPod
la dernière? Cela ne se produira-t-il pas quel que soit le contenu de podlock? Sinon, il ne pourra pas satisfaire aux exigences deSomePod
juste dire:
pod install
- pour l'installation de nouveaux pods,pod update
- pour la mise à jour des pods existants,pod update podName
- pour mettre à jour uniquement un pod spécifique sans toucher à d'autres pods,pod update podName versionNum
- pour mettre à jour / DOWNGRADING pod spécifique sans toucher à d'autres podsla source
pod
au lieu degit
?Juste un petit avis.
ne fonctionnera que si ce module a déjà été installé. Sinon, vous devrez tous les mettre à jour avec
commander
la source
pod install
premier, qui n'installera que le (s) manquant (s), sans toucher les autres. Bien qu'il n'y ait aucun cas d'utilisation pour vouloir mettre à jour un pod que vous n'avez pas installé, y a-t-il?tl; dr utiliser:
Pourquoi? Lire ci-dessous.
pod update
ne respectera PAS lepodfile.lock
. Il la remplacera.pod install
respectera lapodfile.lock
Ce diagramme permet de mieux comprendre les différences:
Le problème majeur vient de l'
~>
opérateur aka optimiste .L'utilisation de versions exactes dans le
Podfile
n'est pas suffisanteCertains pourraient penser qu'en spécifiant les versions exactes de leurs pods dans leur
Podfile
, commepod 'A', '1.0.0'
, c'est suffisant pour garantir que chaque utilisateur aura la même version que les autres personnes de l'équipe.Ensuite, ils pourraient même utiliser
pod update
, même lors de l'ajout d'un nouveau pod, pensant que cela ne risquerait jamais de mettre à jour d'autres pods car ils sont fixés sur une version spécifique dans lePodfile
.Mais en fait, cela ne suffit pas pour garantir que user1 et user2 dans notre scénario ci-dessus obtiendront toujours la même version exacte de tous leurs pods.
Un exemple typique est si le pod
A
a une dépendance sur le podA2
- déclaré enA.podspec
tant quedependency 'A2', '~> 3.0'
. Dans ce cas, l'utilisation de pod'A', '1.0.0'
dans votre Podfile forcera en effet user1 et user2 à toujours utiliser la version 1.0.0 du pod A, mais:A2
dans la version3.4
(parce que c'étaitA2
la dernière version de l'époque)pod install
en rejoignant le projet plus tard, ils peuvent obtenir le podA2
dans la version3.5
(car le responsable deA2
peut avoir publié une nouvelle version entre-temps). C'est pourquoi la seule façon de s'assurer que chaque membre de l'équipe travaille avec les mêmes versions de tous les pods sur l'ordinateur de chacun est d'utiliserPodfile.lock
et d'utiliser correctementpod install
vspod update
..L'extrait ci-dessus est dérivé de l' installation du pod contre la mise à jour du pod
Je recommande également fortement de regarder ce que
podfile.lock
faitla source
J'utilise
cocoapods version 1.0.1
et utilise despod update name-of-pod
œuvres parfaitement. Aucun autre module n'est mis à jour, juste celui que vous entrez.la source
C'est un peu aberrant et ce n'est probablement pas ce à quoi l'OP était confronté, mais
pod update <podname>
ne fonctionnera pas dans tous les cas si vous utilisez un pod local sur votre ordinateur.Dans cette situation, la seule chose qui va se déclencher
pod update
est s'il y a un changement dans le fichier podspec. Cependant, faire un changement permettra égalementpod install
de travailler également.Dans cette situation, vous pouvez simplement modifier quelque chose de mineur tel que la description ou le résumé par une lettre, puis vous pouvez exécuter la commande d'installation ou de mise à jour avec succès.
la source