Ghidul definitiv pentru instalarea și actualizarea podurilor

Gabrielle Earnshaw

Follow

Oct 9, 2018 – 5 min citește

Diferența dintre pod install și pod update este subtilă și nu este întotdeauna clar pe care ar trebui să o folosiți. Dar având o bună înțelegere a ceea ce fac aceste comenzi vă oferă un control mult mai fin asupra modului în care sunt gestionate dependențele în proiectul dumneavoastră, așa că merită să cunoașteți diferența.

În prima parte a acestui articol vă voi oferi o listă de rețete care arată dacă ar trebui să executați pod install sau pod update în unele situații obișnuite. Apoi, în a doua parte, voi explica de ce diferitele comenzi fac lucruri diferite și cum CocoaPods folosește fișierul Podfile.lock pentru a face ca toate acestea să se întâmple.

Pentru ca aceste rețete să funcționeze, asigurați-vă că Podfile și Podfile.lock sunt confirmate în controlul sursei.

Configurați CocoaPods într-un proiect pentru prima dată și v-ați creat fișierul Podfile

pod install

Acest lucru va instala cea mai recentă versiune* a fiecăruia dintre podurile pe care le-ați specificat în noul fișier Podfile. De asemenea, va crea un fișier MyProject.xcworkspace, dacă nu exista deja unul.

Ai adăugat un nou pod în fișierul Podfile

pod install

Acest lucru va instala cea mai recentă versiune* a oricărui pod nou adăugat în fișierul Podfile, lăsând celelalte pod-uri neschimbate.

Dacă ați rula în schimb pod update, acesta ar instala noile poduri și ar actualiza fiecare dintre podurile existente la cea mai recentă versiune*.

Vreți să obțineți cea mai recentă versiune a tuturor podurilor din Podfile

pod update

Acest lucru va trece prin toate podurile dvs. și se va asigura că cea mai recentă versiune* a fiecăruia este instalată în proiectul dvs.

Vreți să obțineți cea mai recentă versiune a unui singur pod din Podfile

pod update SomePod

Acest lucru se va asigura că este instalată cea mai recentă versiune* a podului pe care îl specificați, lăsând celelalte poduri neschimbate.

Lucrați cu un pod de dezvoltare și doriți să obțineți cele mai recente modificări

pod update MyDevelopmentPod

Aceasta se va asigura că este instalată cea mai recentă versiune a podului dumneavoastră, lăsând celelalte poduri neschimbate.

Ați descărcat sursa pentru un proiect existent care utilizează CocoaPods

pod install

Acest lucru va instala toate podurile din fișierul Podfile la versiunile exacte care au fost instalate anterior în această tăietură a codului sursă.

Dacă ar fi să rulați pod update în schimb, se va instala cea mai recentă versiune* a fiecăruia dintre podurile din fișierul Podfile. Acest lucru ar putea împiedica construirea proiectului dacă cele mai recente versiuni nu sunt compatibile cu alte coduri din proiect. V-aș recomanda să rulați pod install pentru a obține construirea codului, apoi să actualizați podurile, după cum este necesar, într-o manieră controlată.

Scrieți un script pentru a construi un proiect pe un server de construire

pod install

Acest lucru va instala toate podurile din Podfile la versiunile exacte care au fost instalate în versiunea care se construiește. Acest lucru este important pentru o construcție stabilă, deoarece acestea sunt versiunile pe baza cărora a fost dezvoltat codul și înseamnă că fiecare construcție a acelei porțiuni de cod va utiliza aceleași versiuni de pod. Dacă ar fi să folosiți pod update în loc de pod update, construcția dvs. ar putea utiliza potențial versiuni diferite de poduri de fiecare dată când se construiește.

Xcode raportează erori de construcție ciudate legate de poduri

Acest lucru se întâmplă ocazional după actualizarea podurilor sau după trecerea între ramurile unui proiect care conțin aceleași poduri la versiuni diferite.

Ștergeți directorul /Pods, apoi rulați pod install

Acest lucru va reinstala toate podurile din fișierul Podfile la versiunile exacte care au fost instalate anterior și, de obicei, este suficient pentru a îndrepta orice probleme cu care Xcode se poate confrunta.

Oriceodată, oamenii sugerează ștergerea directorului /Pods și a fișieruluiPodfile.lock, apoi rularea pod install. Acest lucru va rezolva orice problemă cu Xcode, dar va actualiza, de asemenea, fiecare dintre podurile din Podfile la cea mai recentă versiune*.

Partea 2: Cum funcționează

Diferența dintre pod install și pod update constă în modul în care acestea interacționează cu fișierul Podfile.lock. Acest fișier este utilizat pentru a stoca versiunea exactă a fiecărui pod care este instalat în prezent în proiectul dumneavoastră.

Cel mai simplu mod de a înțelege cum funcționează este să vă uitați la următoarea diagramă (declarație de renunțare: aceasta este o schemă simplă mai degrabă decât o diagramă tehnică precisă).

Pod install vs. pod update

pod update

pod update ignoră Podfile.lock atunci când verifică versiunile. Acesta caută cea mai recentă versiune disponibilă* a unui pod și o instalează dacă nu este deja instalată.

pod install

pod install caută mai întâi în Podfile.lock atunci când verifică versiunile. Dacă o versiune a podului este listată în Podfile.lock, va instala exact acea versiune. Dacă acel pod nu este listat în Podfile.lock (sau dacă Podfile.lock nu există încă), se va comporta ca și în cazul pod update, adică găsește cea mai recentă versiune disponibilă* și o instalează.

În ambele cazuri, CocoaPods actualizează apoi Podfile.lock cu toate numerele noilor versiuni care au fost instalate.

Aceasta este ceea ce vă permite să folosiți versiunile de poduri în mod consecvent în diferite instalări ale unui proiect (i.e.g. atunci când se instalează dintr-un depozit, între mai mulți membri ai echipei sau pe un server de construcție) și este motivul pentru care Podfile.lock ar trebui să fie trimis în controlul sursei.

Rezumat

În acest articol am dat rețete care arată dacă să se execute pod install sau pod update într-o serie de situații comune. Am descris apoi cum și de ce cele două comenzi funcționează în moduri diferite. Dacă vi s-a părut util, vă rog să-l aplaudați și/sau să-l distribuiți, și urmăriți-mă pentru alte articole utile.

.

admin

Lasă un răspuns

Adresa ta de email nu va fi publicată.

lg