Ero pod install ja pod update välillä on hienovarainen, eikä aina ole selvää, kumpaa kannattaa käyttää. Mutta kun ymmärrät hyvin, mitä nämä komennot tekevät, voit hallita paljon tarkemmin sitä, miten riippuvuuksia hallitaan projektissasi, joten ero kannattaa tuntea.

Tämän artikkelin ensimmäisessä osassa annan sinulle luettelon resepteistä, jotka osoittavat, pitäisikö sinun käyttää pod install vai pod update joissakin yleisissä tilanteissa. Sitten toisessa osassa selitän, miksi eri komennot tekevät eri asioita ja miten CocoaPods käyttää Podfile.lock-tiedostoa kaiken tämän toteuttamiseen.

Tämän reseptin toimimiseksi varmista, että Podfile ja Podfile.lock ovat sitoutuneet lähdekoodinhallintaan.

Olet asentamassa CocoaPodsia projektiin ensimmäistä kertaa ja olet luonut Podfile

pod install

Tämä asentaa uusimman version* jokaisesta podista, jonka olet määrittänyt uuteen Podfileen. Se luo myös MyProject.xcworkspace-tiedoston, jos sellaista ei ole vielä olemassa.

Olet lisännyt uuden podin Podfileen

pod install

Tämä asentaa uusimman version* kaikista uusista Podfileen lisätyistä podeista ja jättää muut podit ennalleen.

Jos sen sijaan suorittaisit pod update, se asentaisi uudet podit ja päivittäisi jokaisen olemassa olevan podisi uusimpaan versioonsa*.

Tahdot saada uusimman version kaikista Podfileissäsi olevista podeista

pod update

Tämä käy läpi kaikki podisi ja varmistaa, että jokaisesta podista on asennettu uusin versio* projektiin.

Tahdot saada viimeisimmän version vain yhdestä podista Pod-tiedostossasi

pod update SomePod

Tämä varmistaa, että määrittelemäsi podin viimeisin versio* asennetaan, samalla kun muut podit jätetään ennalleen.

Työskentelet kehityspodin kanssa ja haluat saada viimeisimmät muutokset

pod update MyDevelopmentPod

Tämä varmistaa, että podin viimeisin versio asennetaan, samalla kun muut podit jätetään ennalleen.

Olet ladannut lähdekoodin olemassa olevaan projektiin, joka käyttää CocoaPodsia

pod install

Tämä asentaa kaikki podit Podfile-tiedostossa täsmälleen samoilla versioilla, jotka asennettiin aiemmin tässä lähdekoodin leikkauksessa.

Jos sen sijaan suorittaisit pod update:n, se asentaisi viimeisimmän version* jokaisesta Podfile-tiedostossa olevasta podista. Tämä saattaisi estää projektin rakentamisen, jos uusimmat versiot eivät olisi yhteensopivia projektin muun koodin kanssa. Suosittelisin ajamaan pod install, jotta koodi saadaan rakennettua, ja sitten päivittämään podit tarpeen mukaan hallitusti.

Kirjoitat skriptin, jolla rakennetaan projekti rakennuspalvelimella

pod install

Tämä asentaa kaikki Podfile-tiedostossa olevat podit täsmälleen niillä versioilla, jotka asennettiin rakennettavaan versioon. Tämä on tärkeää vakaan rakentamisen kannalta, koska nämä ovat ne versiot, joita vastaan koodia kehitettiin, ja se tarkoittaa, että jokainen kyseisen koodinpätkän rakentaminen käyttää samoja pod-versioita. Jos sen sijaan käyttäisit pod update, rakennuksesi voisi mahdollisesti käyttää eri pod-versioita joka kerta, kun se rakennetaan.

Xcode raportoi outoja pod-versioihin liittyviä rakennusvirheitä

Tämä tapahtuu toisinaan pod-versioiden päivittämisen jälkeen tai sen jälkeen, kun on vaihdettu projektin sellaisten haarojen välillä, jotka sisältävät samoja pod-versioita eri versioina.

Poista /Pods-hakemisto ja suorita sitten pod install

Tämä asentaa uudelleen kaikki pod-tiedostossa olevat podit täsmälleen samoilla versioilla, jotka oli aiemmin asennettu, ja se yleensä riittää oikaisemaan kaikki ongelmat, joita Xcode voi havaita.

Joskus ihmiset ehdottavat /Pods-hakemiston ja Podfile.lock-tiedoston poistamista ja sitten pod install suorittamista. Tämä ratkaisee kaikki ongelmat Xcoden kanssa, mutta myös päivittää jokaisen Podfile-tiedostossa olevan podin uusimpaan versioonsa*.

Osa 2: Miten se toimii

Ero pod install:n ja pod update:n välillä on siinä, miten ne ovat vuorovaikutuksessa Podfile.lock-tiedoston kanssa. Tätä tiedostoa käytetään tallentamaan kunkin podin tarkka versio, joka on tällä hetkellä asennettu projektiisi.

Helpoisin tapa ymmärtää, miten se toimii, on katsoa seuraavaa kaaviota (vastuuvapauslauseke: tämä on pikemminkin yksinkertainen kaavio kuin tarkka tekninen kaavio).

Podin asennus vs. podin päivitys

podin päivitys

pod update ei huomioi Podfile.lock:tä tarkistettaessa versioita. Se etsii podin viimeisintä saatavilla olevaa versiota* ja asentaa sen, jos sitä ei ole vielä asennettu.

pod install

pod install etsii ensin Podfile.lock:stä, kun se etsii versioita. Jos podin versio on luettelossa Podfile.lock, se asentaa juuri tämän version. Jos kyseistä podia ei ole listattu Podfile.lock:ssä (tai jos Podfile.lock:tä ei ole vielä olemassa), se käyttäytyy kuten pod update:n kohdalla, eli se etsii viimeisimmän saatavilla olevan version* ja asentaa sen.

Kummassakin tapauksessa CocoaPods päivittää sen jälkeen Podfile.lock:n mahdollisilla uusilla versionumeroilla, jotka on asennettu.

Tämä mahdollistaa podien versioiden käyttämisen yhtenevästi projektin eri asennuskerroilla (esim.esim. asennettaessa arkistosta, useiden tiimin jäsenten kesken tai rakennuspalvelimella), ja sen vuoksi Podfile.lock pitäisi sitouttaa lähdekoodinhallintaan.

Yhteenveto

Tässä artikkelissa olen antanut reseptejä, joissa näytetään, kannattaako käyttää pod install vai pod update useissa yleisissä tilanteissa. Sen jälkeen olen kuvannut, miten ja miksi nämä kaksi komentoa toimivat eri tavoin. Jos löysit sen hyödylliseksi, taputa ja/tai jaa sitä ja seuraa minua muiden hyödyllisten artikkelien saamiseksi.

admin

Vastaa

Sähköpostiosoitettasi ei julkaista.

lg