English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Erweiterter Artikel zur Verwendung von CocoaPods in iOS

1. Podfile.lock-Datei
Wie bereits erwähnt, wird nach der Ausführung von pod install ein Podfile.lock-Datei erstellt. Diese Datei scheint mit uns nichts zu tun zu haben, ist aber tatsächlich absolut nicht zu vernachlässigen.
Diese Datei wird verwendet, um die Versionen der installierten Pods-Abhängigkeitsbibliotheken zu speichern. Nachdem SBJson, AFNetworking und Reachability als drei Pods-Abhängigkeitsbibliotheken mit CocoaPods installiert wurden, lautet der Inhalt der entsprechenden Podfile.lock-Datei:

PODS:
 - AFNetworking (2.1.0):
  - AFNetworking/NSURLConnection
  - AFNetworking/NSURLSession
  - AFNetworking/Reachability
  - AFNetworking/Security
  - AFNetworking/Serialization
  - AFNetworking/UIKit
 - AFNetworking/NSURLConnection (2.1.0):
  - AFNetworking/Reachability
  - AFNetworking/Security
  - AFNetworking/Serialization
 - AFNetworking/NSURLSession (2.1.0):
  - AFNetworking/NSURLConnection
 - AFNetworking/Reachability (2.1.0)
 - AFNetworking/Security (2.1.0)
 - AFNetworking/Serialization (2.1.0)
 - AFNetworking/UIKit (2.1.0):
  - AFNetworking/NSURLConnection
 - Reachability (3.0.0)
 - SBJson (4.0.0)
ABHÄNGIGKEITEN:
 - AFNetworking (~> 2.0)
 - Reachability (~> 3.0.0)
 - SBJson (~> 4.0.0)
SPEC CHECKSUMS:
 AFNetworking: c7d7901a83f631414c7eda1737261f696101a5cd
 Reachability: 500bd76bf6cd8ff2c6fb715fc5f44ef6e4c024f2
 SBJson: f3c686806e8e36ab89e020189ac582ba26ec4220
COCOAPODS: 0.29.0

Der größte Nutzen der Datei Podfile.lock liegt in der Entwicklung durch mehrere Personen. Für die Schreibweise der Pods-Abhängigkeitsbibliotheksversionen, die im Podfile nicht angegeben sind, ist folgendes der Fall:

pod 'SBJson'

Dieses Statement wird verwendet, um die neueste Version der Pods-Abhängigkeitsbibliothek SBJson zu erhalten.
Wenn jemand im Team den Befehl pod install ausgeführt hat, wird die Datei Podfile.lock erstellt und die Version der damals neuesten Pods-Abhängigkeitsbibliothek erfasst. Wenn andere Teammitglieder dann dieses Projekt mit der Datei Podfile.lock überprüfen und den Befehl pod install ausführen, wird die Version der Pods-Abhängigkeitsbibliothek, die sie erhalten, mit der Version übereinstimmen, die der ursprüngliche Benutzer erhalten hat. Ohne Datei Podfile.lock würden alle Benutzer, die den Befehl pod install ausführen, die neueste Version der SBJson erhalten, was dazu führen könnte, dass die Versionen der Abhängigkeitsbibliotheken im selben Team unterschiedlich sind, was für die Teamzusammenarbeit ein absolutes Desaster wäre!
In diesem Fall gibt es zwei Möglichkeiten, wenn das Team die neueste Version der Abhängigkeitsbibliothek SBJson verwenden möchte:
Ändern Sie die Datei Podfile, damit sie auf die neueste Version der Abhängigkeitsbibliothek SBJson verweist;
Führen Sie den Befehl pod update aus;
Da die Datei Podfile.lock für die Teamzusammenarbeit so wichtig ist, müssen wir sie in das Versionsverwaltungssystem aufnehmen.

Zwei. Podfile-Datei
Für den Durchschnittsnutzer ist die Datei Podfile die häufigste Datei, mit der wir bei CocoaPods zu tun haben. CocoaPods ist in Ruby implementiert, daher ist die Syntax der Datei Podfile die Syntax von Ruby. Folgend werden einige Aspekte des Podfile vorgestellt:
1、Podfile-Datei-Aufbewahrungsposition
Dies ist ein verbleibendes Problem im vorherigen Artikel. In der Regel empfehlen wir, die Datei Podfile im Wureldirectory des Projekts abzulegen, wie im folgenden Bild gezeigt:

Tatsächlich kann die Datei Podfile in jedem Verzeichnis abgelegt werden. Es ist erforderlich, den Pfad des Projekts im Podfile anzugeben. Im Vergleich zum alten Stil ist die Datei Podfile am Anfang des Dokuments um eine Zeile hinzugefügt worden. Der genaue Inhalt ist wie folgt:

xcodeproj "/Users/wangzz/Desktop/CocoaPodsTest/CocoaPodsTest.xcodeproj
platform :ios 
pod 'Reachability', '~> 3.0.0' 
pod 'SBJson', '~> 4.0.0' 
platform :ios, '7.0' 
pod 'AFNetworking', '~> 2.0' 

Der angegebene Pfad verwendet das Schlüsselwort xcodeproj.
Danach müssen Sie in den Pfad der Podfile navigieren und den Befehl pod install ausführen. Dies funktioniert wie zuvor und lädt diese Pods-Abhängigkeitsbibliotheken herunter, und die generierten Dateien werden im Verzeichnis der Podfile abgelegt, wie im folgenden Bild gezeigt:

Wie zuvor müssen wir die hier generierte workspace-Datei verwenden, um das Projekt zu öffnen.

2、Podfile und Target
Die Podfile wird im Wesentlichen verwendet, um die Targets in Xcode-Projekten zu beschreiben. Wenn wir den Target der Podfile nicht explizit angeben, erstellt CocoaPods einen隐式target mit dem Namen default, der mit dem ersten Target in unserem Projekt korrespondiert. Mit anderen Worten, wenn im Podfile kein Target angegeben ist, kann nur der erste Target im Projekt die Pods-Abhängigkeitsbibliotheken aus der Podfile verwenden.
Wenn man mehrere Targets in einer Podfile gleichzeitig beschreiben möchte, gibt es je nach Bedarf verschiedene Implementierungsmöglichkeiten. Um das Problem zu verdeutlichen, wird in der ursprünglichen Projektdatei ein Target mit dem Namen Second erstellt. Derzeit enthält das Projekt die folgenden Targets:

① Mehrere Targets verwenden die gleichen Pods-Abhängigkeitsbibliotheken
Zum Beispiel, wenn sowohl der Target CocoaPodsTest als auch der Target Second die drei Pods-Abhängigkeitsbibliotheken Reachability, SBJson und AFNetworking benötigen, kann der Schlüsselwort link_with verwendet werden, um die Podfile wie folgt zu schreiben:

link_with 'CocoaPodsTest', 'Second'
platform :ios 
pod 'Reachability', '~> 3.0.0' 
pod 'SBJson', '~> 4.0.0' 
platform :ios, '7.0' 
pod 'AFNetworking', '~> 2.0' 

Diese Schreibweise ermöglicht es, dass die beiden Targets CocoaPodsTest und Second die gleichen Pods-Abhängigkeitsbibliotheken verwenden.
② Different Targets verwenden völlig verschiedene Pods-Abhängigkeitsbibliotheken
Dieser Target CocoaPodsTest verwendet die drei Abhängigkeitsbibliotheken Reachability, SBJson und AFNetworking, aber der Target Second benötigt nur die Abhängigkeitsbibliothek OpenUDID. In diesem Fall kann der Schlüsselwort target verwendet werden, und die Beschreibung in der Podfile ist wie folgt:

target :'CocoaPodsTest' do
platform :ios 
pod 'Reachability', '~> 3.0.0' 
pod 'SBJson', '~> 4.0.0' 
platform :ios, '7.0' 
pod 'AFNetworking', '~> 2.0'
end
target :'Second' do
pod 'OpenUDID', '~> 1.0.0'
end

Dabei, do/end als Start- und End kennzeichner.
3、Verwenden Sie Podfile, um die Version der Pods-Abhängigkeitsbibliothek zu verwalten
Beim erneuten Hinzufügen einer Abhängigkeitsbibliothek muss die Version der referenzierten Abhängigkeitsbibliothek explizit oder implizit angegeben werden, die spezifische Schreibweise und Bedeutung sind wie folgt:

pod 'AFNetworking'   //Die Version der Abhängigkeitsbibliothek wird nicht explizit angegeben, was bedeutet, dass immer die neueste Version abgerufen wird
pod 'AFNetworking', '2.0'   //Nur verwenden2.0-Version
pod 'AFNetworking', '>' 2.0'   //Verwenden Sie höher als2.0-Version
pod 'AFNetworking', '>=' 2.0'   //Verwenden Sie größer als oder gleich2.0-Version
pod 'AFNetworking', '<' 2.0'   //Verwenden Sie kleiner2.0-Version
pod 'AFNetworking', '<=' 2.0'   //Verwenden Sie kleiner oder gleich2.0-Version
pod 'AFNetworking', '~> 0.'1.2'   //Verwenden Sie größer als oder gleich 0.1.2aber kleiner 0.2Version
pod 'AFNetworking', '~>0.'1'   //Verwenden Sie größer als oder gleich 0.1aber kleiner1.0-Version
pod 'AFNetworking', '~>0'   //Versionen höher als 0 haben die gleiche Wirkung wie nichts zu schreiben, beide bedeuten, die neueste Version zu verwenden

Drei, häufig verwendete Befehle von CocoaPods
1、pod install
Nach den Inhalten des Podfile installiert, wird die Abhängigkeitsbibliothek installiert. Wenn eine Podfile.lock-Datei vorhanden ist und das zugehörige Podfile nicht geändert wurde, wird die Version gemäß der Podfile.lock-Datei installiert.
Jedes Mal, wenn das Podfile-Datei aktualisiert wird, muss der Befehl neu ausgeführt werden, um die Pods-Abhängigkeitsbibliotheken neu zu installieren.
2、pod update
Wenn die Version der abhängigen Bibliothek, die im Podfile angegeben ist, nicht festgelegt ist, wird die neueste Version der abhängigen Bibliothek, die im Podfile beschrieben ist, immer abgerufen, unabhängig davon, ob eine Podfile.lock-Datei vorhanden ist oder nicht.
3、pod search
Der Befehlsformat ist:

$ pod search OpenUDID

Der nachfolgende OpenUDID ist das Argument.
Der Name des Befehls deutet darauf hin, dass dieser Befehl verwendet wird, um verfügbare Pods-Abhängigkeitsbibliotheken nach Namen zu suchen, das Ausführungsresultat ist wie folgt:

-> OpenUDID (1.0.0)
  Open source initiative for a universal and persistent UDID solution for iOS.
  pod 'OpenUDID', '~> 1.0.0'
  - Homepage: http://OpenUDID.org
  - Quelle:  https://github.com/ylechelle/OpenUDID.git
  - Versionen: 1.0.0 [master repo]

Hier haben wir ein verfügbares Datenbankelement gefunden, das eine kurze Beschreibung der OpenUDID-Bibliothek enthält. Tatsächlich benötigen wir wirklich die dritte Zeile des obigen Ergebnisses:

pod 'OpenUDID', '~> 1.0.0'

Es ist nicht schwer zu erkennen, dass dies hinzugefügt werden muss, um die Datei Podfile zu erstellen.
Mit diesem Befehl können Sie bequem und schnell die benötigten Pods-Abhängigkeitsbibliotheken finden.
4、pod setup
Der Befehlsformat ist:

$ pod setup

Nach dem Ausführen wird folgendes gedruckt:

Einrichten des CocoaPods Master Repo
Aktualisieren 7cd4668..f3d3ced
Schnell-forward

Dann werden viele weitere Updateinformationen ausgegeben.
Dieser Befehl wird verwendet, um die auf dem lokalen Computer gespeicherte Pods-Abhängigkeitsbibliothek tree zu aktualisieren. Da jeden Tag viele Menschen Pods-Abhängigkeitsbibliotheken erstellen oder aktualisieren, kann dieser Befehl bei der Ausführung recht langsam sein, bitte haben Sie Geduld. Wir müssen diesen Befehl regelmäßig ausführen, andernfalls können neue Pods-Abhängigkeitsbibliotheken beim Ausführen des Befehls pod search nicht gefunden werden.

Kapitel vier, Referenzdokumentation

http://guides.cocoapods.org/verwenden/index.html

Vielleicht gefällt dir auch