Az pod install és a pod update közötti különbség finom, és nem mindig egyértelmű, hogy melyiket kell használni. De ha jól érted, hogy mit csinálnak ezek a parancsok, sokkal finomabb kontrollt kapsz a függőségek kezelésének módjára a projektedben, ezért érdemes ismerni a különbséget.

A cikk első részében egy receptlistát adok, amely megmutatja, hogy a pod install vagy a pod update parancsot kell-e futtatnod néhány gyakori helyzetben. Aztán a második részben elmagyarázom, hogy a különböző parancsok miért csinálnak különböző dolgokat, és hogyan használja a CocoaPods a Podfile.lock fájlt, hogy mindez megtörténjen.

Hogy ezek a receptek működjenek, győződj meg róla, hogy a Podfile és a Podfile.lock le van kötve a forráskontrolban.

Először állítod be a CocoaPods-t egy projektben, és létrehoztad a Podfile

pod install

Ez az új Podfile-ban megadott podok mindegyikének legújabb verzióját* fogja telepíteni. Létrehoz egy MyProject.xcworkspace fájlt is, ha még nem létezett.

Új podot adtál hozzá a Podfile-odhoz

pod install

Ez a Podfile-odhoz hozzáadott új podok legújabb verzióját* fogja telepíteni, a többi podot változatlanul hagyva.

Ha ehelyett a pod update-et futtatnád, az telepítené az új podokat, és minden egyes meglévő pododat frissítene a legújabb verzióra*.

A Podfile-odban lévő összes pod legújabb verzióját akarod

pod update

Ez végigmegy az összes pododon, és biztosítja, hogy mindegyikből a legújabb verzió* legyen telepítve a projektedben.

A Podfile

pod update SomePod

Ez biztosítja, hogy a megadott pod legújabb verziója* kerüljön telepítésre, miközben a többi podot változatlanul hagyja.

Egy fejlesztői poddal dolgozik, és szeretné megkapni a legújabb módosításokat

pod update MyDevelopmentPod

Ez biztosítja, hogy a pod legújabb verziója kerüljön telepítésre, miközben a többi pod változatlanul marad.

Letöltötte egy meglévő, CocoaPodokat használó projekt forrását

pod install

Ez a Podfile-ban lévő összes podot pontosan azokkal a verziókkal fogja telepíteni, amelyek korábban a forráskód ezen vágásában telepítve voltak.

Ha ehelyett a pod update futtatását végezné, akkor a Podfile-ban lévő összes pod legújabb verzióját* telepítené. Ez megakadályozhatja a projekt építését, ha a legújabb verziók nem kompatibilisek a projektben lévő más kódokkal. Javasolnám a pod install futtatását a kód építéséhez, majd a podok szükség szerinti frissítését ellenőrzött módon.

Skriptet írsz egy projekt építéséhez egy build szerveren

pod install

Ez a Podfile-ban lévő összes podot pontosan azokkal a verziókkal fogja telepíteni, amelyek az építés alatt álló verzióban telepítve voltak. Ez fontos egy stabil build szempontjából, mert ezek azok a verziók, amelyek ellenében a kódot fejlesztették, és ez azt jelenti, hogy az adott kódrészlet minden buildje ugyanazokat a podverziókat fogja használni. Ha ehelyett a pod update-t használná, a build potenciálisan a podok különböző verzióit használná minden egyes buildeléskor.

Az Xcode furcsa build hibákat jelent a podokkal kapcsolatban

Ez esetenként podok frissítése után történik, vagy egy projekt olyan ágai közötti váltás után, amelyek ugyanazokat a podokat tartalmazzák különböző verziókkal.

Törölje a /Pods könyvtárat, majd futtassa a pod install

Az összes podot újratelepíti a Podfile-ban, pontosan a korábban telepített verziókkal, és ez általában elég ahhoz, hogy az Xcode rendezze az esetleges problémákat.

Néha javasolják a /Pods könyvtár és aPodfile.lock fájl törlését, majd a pod install futtatását. Ez megoldja az Xcode minden problémáját, de a Podfile-ban lévő podok mindegyikét a legújabb verzióra frissíti*.

2. rész: Hogyan működik

A pod install és a pod update közötti különbség abban rejlik, hogy hogyan lépnek kapcsolatba a Podfile.lock fájllal. Ez a fájl arra szolgál, hogy tárolja az egyes podok pontos verzióját, amelyek jelenleg telepítve vannak a projektben.

A működés megértésének legegyszerűbb módja, ha megnézzük a következő ábrát (disclaimer: ez inkább egy egyszerű vázlat, mint egy pontos technikai diagram).

Pod install vs. pod update

pod update

pod update a verziók ellenőrzése során figyelmen kívül hagyja a Podfile.lock-öt. A pod legújabb elérhető verzióját* keresi, és telepíti, ha még nincs telepítve.

pod install

pod install a verziók keresésekor először a Podfile.lock-t keresi. Ha a pod egy verziója szerepel a Podfile.lock-ben, akkor pontosan ezt a verziót fogja telepíteni. Ha az adott pod nem szerepel a Podfile.lock-ben (vagy ha a Podfile.lock még nem létezik), akkor úgy fog viselkedni, mint a pod update esetében, azaz megkeresi a legújabb elérhető verziót* és azt telepíti.

A CocoaPods mindkét esetben frissíti a Podfile.lock-t a telepített új verziószámokkal.

Ez teszi lehetővé, hogy a pod verziókat következetesen használjuk egy projekt különböző telepítései között (i.pl. tárolóból, több csapattag között vagy egy build szerveren történő telepítéskor), és ez az oka annak, hogy a Podfile.lock-öt a forráskontrolba kell commitolni.

Összefoglaló

Ebben a cikkben recepteket adtam, amelyek megmutatják, hogy számos gyakori helyzetben a pod install vagy a pod update futtatását válasszuk. Ezután leírtam, hogy a két parancs hogyan és miért működik különböző módon. Ha hasznosnak találta, kérem, tapsolja meg és/vagy ossza meg, és kövessen a további hasznos cikkekért.

admin

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.

lg