4 Punkte von godrm 2021-03-25 | Noch keine Kommentare. | Auf WhatsApp teilen

Das lässt sich wie folgt zusammenfassen.

  • Seit Xcode 10 funktionieren inkrementelle Builds dateibasiert auf Grundlage von llbuild.

  • Im Xcode-Build-Log ist auf den ersten Blick kein Unterschied zu erkennen, aber Abhängigkeiten werden analysiert, Interface-Hash-Werte verglichen und Objektdateien .o erzeugt. Natürlich werden sie bei Änderungen an der Implementierung erneut erzeugt.

  • Wenn der Interface-Hash-Wert einer anderen Quelldatei, zu der eine Abhängigkeit besteht, identisch ist, wird keine Objektdatei erzeugt.

  • Informationen zu Abhängigkeiten von Swift-Dateien lassen sich in der Datei .swiftdeps prüfen.

  • Für jede Datei wird ein Teilstück des swiftmodule als Partial erstellt, und beim Linken wird das gesamte Modul zusammengeführt.

  • Anders als bei einem Java-Gradle-Build führt eine Aufteilung nach ISP nicht dazu, dass nach Interfaces getrennt wird und nur geänderte Dateien gebaut werden.

  • Beim Kompilieren von Swift-Quelldateien werden Dateien, deren Implementierung sich geändert hat, erneut kompiliert. Da Abhängigkeiten jedoch vor allem anhand von Deklarationen ermittelt werden, werden nur die Dateien neu gebaut, die von Dateien mit geänderten Deklarationen abhängen.

Noch keine Kommentare.

Noch keine Kommentare.