2016-11-02 5 views
2

Ich habe einen XCworkspace mit Cocoapods (Pod-Installation) gebaut. Die Dinge, die ich nicht herausfinden kann, wie xCode weiß, dass wenn ich MyProject baue, es auch das Pods-Projekt bauen muss?Xcode - Wie Cocoapods Pods kompilieren?

Hypothese:

In MyProject Hauptziel in Build-Phase "Link-Binary mit Bibliotheken" Abschnitt Ich kann "Pods_MyProject.framework" sehen, die von Pods auf die .framework Build bezieht (das Projekt) Pods-MyProject Ziel (ist es richtig?). Dieses Ziel hat in seinen "Ziel-Abhängigkeiten" alle Pods.

Aber ich verstehe immer noch nicht zwei Dinge

  1. Wie Xcode weiß, dass, wenn ich MyProject bauen muss Pods-MyProject zuerst bauen ?? (Es gibt nichts in MyProject Hauptziel "Ziel Abhängigkeiten" Abschnitt)

Hier ist die Build-Phasen Registerkarte "MyProject" (sein richtiger Name ist "clicktube"):

enter image description here

  1. Wie enthält "Pods_MyProject.framework" alle Pods, während der Abschnitt "Binary mit Libraries verknüpfen" fast leer ist?

Die Hülsen-MyProject "Link mit Bibliotheken" Abschnitt:

enter image description here

Antwort

0

Hier ist die interessante Sache:

https://developer.apple.com/library/content/featuredarticles/XcodeConcepts/Concept-Workspace.html#//apple_ref/doc/uid/TP40009328-CH7-SW1

Xcode sucht die Dateien im Build Verzeichnis zu impliziten Abhängigkeiten zu entdecken. Wenn beispielsweise ein in einem Arbeitsbereich enthaltenes Projekt eine Bibliothek erstellt, mit der ein anderes Projekt im selben -Arbeitsbereich verknüpft ist, erstellt Xcode automatisch die Bibliothek, bevor das andere Projekt erstellt wird, selbst wenn die Buildkonfiguration diese -Abhängigkeit nicht bildet explizit. Sie können diese impliziten Abhängigkeiten bei Bedarf mit expliziten Build-Einstellungen überschreiben. Für explizite Abhängigkeiten müssen Sie Projektreferenzen erstellen.

Es gibt zwei Arten von Abhängigkeiten: explizit und implizit. Sie geben die expliziten in den "Zielabhängigkeiten" an. Die impliziten Abhängigkeiten werden von XCode erkannt, indem man das "Link binary with libraries" betrachtet und dann die Reihenfolge bestimmt, in der die Projekte erstellt werden.

Wie die „Pods_MyProject.framework“ enthält alle Schoten, während sein „Link Binary mit Bibliotheken“ Abschnitt fast leer ist?

Wenn Sie in den Pods.xcodeproj schauen, gibt es ein Ziel für jedes Framework, das Sie über podfile "installiert" haben. Dann gibt es das Pods_MyProject.framework-Ziel, das eine explizite Abhängigkeit von all diesen Frameworks hat.

Verwandte Themen