Swift Kompatibilität zwischen Versionen für eine Bibliothek

8

Ich verteile Bibliotheken für andere Entwickler ( Ссылка ). Ich habe bemerkt, dass zwischen schnellen Versionen, sogar 2.0 bis 2.1, ich Module file was created by a (newer/older) version of the compiler.

bekomme

Ich muss auf eine zukunftssichere Weise verteilt werden.

Wie kann ich sicherstellen, dass meine kompilierten Frameworks zukünftig von neueren Versionen von Swift verwendet werden können, damit ich nicht neu kompilieren muss, sobald Apple eine neue Betaversion veröffentlicht?

    
Aaron Zinman 26.10.2015, 18:32
quelle

2 Antworten

11

Von Apples Website :

  

Binärkompatibilität und Frameworks

     

Während die Laufzeitkompatibilität Ihrer App gewährleistet ist, wird die Swift-Sprache verwendet   selbst wird sich weiter entwickeln, und die binäre Schnittstelle wird auch   Veränderung. Um sicher zu sein, sollten alle Komponenten Ihrer App mit erstellt werden   die gleiche Version von Xcode und der Swift-Compiler, um sicherzustellen, dass sie   zusammenarbeiten.

     

Dies bedeutet, dass Frameworks sorgfältig verwaltet werden müssen. Zum Beispiel,   Wenn Ihr Projekt Frameworks verwendet, um Code mit einem eingebetteten Code zu teilen   Erweiterung möchten Sie die Frameworks, App und Erweiterungen erstellen   zusammen. Es wäre gefährlich, sich auf binäre Frameworks zu verlassen   Nutzen Sie Swift - besonders von Dritten. Wie sich Swift ändert, diese   Frameworks sind mit dem Rest Ihrer App nicht kompatibel. Wenn das   Binärschnittstelle stabilisiert sich in ein oder zwei Jahren, die Swift-Laufzeit wird   Teil des Host-Betriebssystems werden und diese Einschränkung wird nicht mehr existieren.

    
user3441734 29.10.2015 07:33
quelle
2

Bis sich die Swift ABI (Application Binary Interface) stabilisiert (ich vermute noch ein oder zwei Jahre), ist die Verteilung des Quellcodes die einzige Möglichkeit, Bibliotheken zu verteilen, die über verschiedene Xcode-Versionen hinweg funktionieren. Kakaoschoten und Karthago sind beide gute Werkzeuge, um die Bibliotheksverteilung zu vereinfachen, aber für Swift-Code werden sie immer noch darauf angewiesen sein, dass der Quellcode verfügbar ist.

Es kann möglich sein, einen Cocoapod zu haben, der die Version von Xcode erkennt, mit der er ausgeführt wird und dann herunterlädt und den korrekten Build Ihrer Bibliothek bereitstellt. Sie müssen jedoch die Bibliotheken für alle Xcode-Versionen erstellen, die Sie unterstützen möchten und kompilieren jedes Mal neu, wenn Apple einen neuen Xcode veröffentlicht, aber der Benutzer muss nicht eine neue Version manuell herunterladen.

    
Joseph Lord 02.11.2015 17:30
quelle

Tags und Links