- Demystifying Pod Install and Pod Update
- Olet asentamassa CocoaPodsia projektiin ensimmäistä kertaa ja olet luonut Podfile
- Olet lisännyt uuden podin Podfileen
- Tahdot saada uusimman version kaikista Podfileissäsi olevista podeista
- Tahdot saada viimeisimmän version vain yhdestä podista Pod-tiedostossasi
- Työskentelet kehityspodin kanssa ja haluat saada viimeisimmät muutokset
- Olet ladannut lähdekoodin olemassa olevaan projektiin, joka käyttää CocoaPodsia
- Kirjoitat skriptin, jolla rakennetaan projekti rakennuspalvelimella
- Xcode raportoi outoja pod-versioihin liittyviä rakennusvirheitä
- Osa 2: Miten se toimii
- podin päivitys
- pod install
- Yhteenveto
Demystifying Pod Install and Pod Update
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 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.