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 update
aber 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
?
71
Antworten:
Gemäß der Dokumentation aktualisiert das Pod Repo-Update die Spezifikationsrepos
~/.cocoapods/repos
in Ihrem Home-Ordner.Das
repo
ist 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ührenpod repo update
kennt es diese neuere Version und kann sie weiterhin installieren.Um Ihre Frage zu beantworten. Wenn Sie
pod repo update
in Ihrem Dokumentenordner ausgeführt werden, wird in diesem Ordner nichts ausgeführt. Die Pod-Spezifikationsreferenzen werden~/.cocoapods/repos
nur in Ihrem Ordner aktualisiert .quelle
~/.cocoapods/repos
Ordner 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 BibliothekenDas Haupt-Specs-Repo ist nichts anderes als eine Liste ALLER PodSpecs. Eine PodSpec ist:
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:
Die Liste einiger Alamofire PodSpecs
Eine einzelne PodSpec 4.7.3:
Ihr eigentliches Projekt zieht den Code entweder durch
pod update
oderpod install
dann werden die physischen Dateien auf Ihren Mac heruntergeladen und für Ihr Projekt kopiert.quelle