Was genau macht "Pod Repo Update"?

71

Ich verfolge ein Internet-Tutorial zu Firebase und musste als Teil davon einige Arbeiten an der Befehlszeile ausführen. Ich bin ziemlich vertraut mit der Kommandozeile, aber mit Cocoapods nicht vertraut. Ich habe es ausgeführt, pod repo updateaber danach wurde mir klar, dass ich es auf meinem gesamten Ordner "Dokumente" meines Mac anstelle des Ordners ausgeführt habe, der mein Projekt enthielt. Die Ausführung dauerte über 20 Minuten und es wurden buchstäblich Tausende von Dingen ausgedruckt, als es endlich fertig war, von denen einige "erstellen" und "gelöscht" enthielten. Ich war etwas besorgt - hätte das Ausführen dieses Befehls etwas in meinen Dokumenten außer dem Firebase-Projekt geändert? Und was macht das überhaupt pod repo update?

Eine Tyshka
quelle
Lesen Sie einfach in der Dokumentation nach. Wie guides.cocoapods.org/using/pod-install-vs-update.html
Roope
1
@Roope Ich habe diese Dokumentation gelesen. Ich war mir einfach nicht sicher, was passieren würde, da sich keine Poddatei direkt im Ordner "Dokumente" befand, sondern in mehreren Ordnerebenen vergraben war.
Ein Tyshka

Antworten:

90

Gemäß der Dokumentation aktualisiert das Pod Repo-Update die Spezifikationsrepos ~/.cocoapods/reposin Ihrem Home-Ordner.

Aktualisiert den lokalen Klon des Spec-Repo-NAMENS. Wenn NAME weggelassen wird, werden alle Spezifikations-Repos in ~ / .cocoapods / repos aktualisiert.

Das repoist im Grunde eine Liste aller verfügbaren Pods und Versionen. Ich habe gerade einen Fehler in unseren CI-Builds festgestellt, weil das Repo keine Spezifikation für eine Bibliothek enthielt, die ich gerade hinzugefügt habe. Durch das Ausführen pod repo updatekennt es diese neuere Version und kann sie weiterhin installieren.

Um Ihre Frage zu beantworten. Wenn Sie pod repo updatein Ihrem Dokumentenordner ausgeführt werden, wird in diesem Ordner nichts ausgeführt. Die Pod-Spezifikationsreferenzen werden ~/.cocoapods/reposnur in Ihrem Ordner aktualisiert .

Skriptfähig
quelle
Wenn wir keine Quellcodeverwaltung verwenden, müssen wir kein Repo-Update aufrufen. einfach pod installieren?
isJulian00
2
Ja, Sie müssen immer noch das Pod-Repo-Update aufrufen. Cocoapods lädt die Repo-Details herunter. Es spielt keine Rolle, ob Sie die Quellcodeverwaltung in Ihrem Projekt verwenden oder nicht. Es muss die Liste der Pods und ihrer Versionen geladen werden
Scriptable
7
Cocoapods führt eine Liste (Repo) aller Pods, ihrer Github-Release-Links, Informationen usw. online und diese wird im ~/.cocoapods/reposOrdner heruntergeladen / indiziert . Wenn Sie es installieren, wird die aktuelle Liste der verfügbaren Pods / Bibliotheken angezeigt. ein paar Monate später und sagen Sie Swift-Updates auf eine neue Version, dann möchten Sie den aktualisierten Pod, der diese schnelle Version unterstützt. Ihre lokalen Cocoapods kennen diese aktualisierte Version jedoch nicht. Sie führen also das Pod-Repo-Update aus und Cocoapods aktualisiert die Liste der verfügbaren Bibliotheken
Scriptable
1
nichts, führen Sie einfach einen Build aus, er wird diese Bibliothek nicht enthalten, wenn Sie den Build ausführen
Scriptable
1
@izzyMachado Es sollte die niedrigste iOS-Version sein, die Sie unterstützen. Für ein neues Projekt ist es wahrscheinlich in Ordnung, es als 12. zu
belassen
10

Das Haupt-Specs-Repo ist nichts anderes als eine Liste ALLER PodSpecs. Eine PodSpec ist:

Eine Spezifikation beschreibt eine Version der Pod-Bibliothek. Es enthält Details darüber, wo die Quelle abgerufen werden soll [welches Tag oder Commit oder Zweig], welche Dateien verwendet werden sollen, welche Build-Einstellungen angewendet werden sollen und andere allgemeine Metadaten wie Name, Version und Beschreibung.

Das specs-Verzeichnis ist nichts anderes als eine Liste aller unterschiedlichen PodSpecs. Jede Version von PodSpec befindet sich in einem Tag-Verzeichnis. Das Repo enthält nicht den Pod selbst . Das Repo enthält die PodSpec. Die PodSpec gibt den Standort des Repos und eine Reihe anderer Metadaten an

spec.source = { :git => 'https://github.com/tonymillion/Reachability.git', :tag => 'v3.1.0' }

Wenn Sie dies tun pod repo update, rufen Sie die neuesten PodSpecs (nicht den eigentlichen Pod) von https://github.com/CocoaPods/Specs ab . Wenn Sie nur eine einzelne Pod-Quelle aktualisieren möchten, tun Sie dies einfachpod repo update [NAME]

Cocoapods / Specs Master Repo:

Geben Sie hier die Bildbeschreibung ein

Die Liste einiger Alamofire PodSpecs

Geben Sie hier die Bildbeschreibung ein

Eine einzelne PodSpec 4.7.3:

Geben Sie hier die Bildbeschreibung ein


⚡︎: PodSpec : Eine Spezifikation beschreibt eine Version der Pod-Bibliothek. Es enthält Details darüber, woher die Quelle abgerufen werden soll, welche Dateien verwendet werden sollen, welche Build-Einstellungen angewendet werden sollen und andere allgemeine Metadaten wie Name, Version und Beschreibung.


Ihr eigentliches Projekt zieht den Code entweder durch pod updateoder pod installdann werden die physischen Dateien auf Ihren Mac heruntergeladen und für Ihr Projekt kopiert.

Honig
quelle