Verwenden Sie Swift 2.2 in Xcode 8?

72

Ist es möglich, Swift 2.2 in Xcode 8 zu verwenden?

Aus den Xcode 8-Versionshinweisen:

"Xcode 8 unterstützt das Wechseln von Toolchains wie denen von swift.org, ohne Xcode neu zu starten. (23135507)"

Ich habe versucht, eine schnelle 2.2-Toolchain auf der swift.org-Website zu finden, konnte dies aber nicht. Haben Sie einen Erfolg bei der Konfiguration von Xcode 8 für Swift 2.2

Salabaha
quelle
Was ist das Problem bei der Migration auf 2.3?
Kennytm
Sie möchten versuchen, mit Xcode 8 zu entwickeln, benötigen jedoch weiterhin meinen Code, um mit Xcode 7 kompatibel zu sein, damit Release-Builds erstellt werden können.
Salabaha
1
Swift 2.2 in Xcode 7 und Swift 2.3 in Xcode 8 sind kompatibel.
Jim
1
Ich würde nicht kompatibel sagen. In Xcode 8 funktioniert KEINE meiner Einschränkungen für das automatische Layout in meinen Storyboards. Am Ende muss ich das gesamte Layout für meine Apps wiederholen.
DiggyJohn
@ DiggyJohn Ich habe auch ein Problem mit der automatischen Layoutkompatibilität mit Xcode 8.0. Weiß jemand, ob das automatische Layout von Grund auf die einzige Lösung ist?
Murat Yasar

Antworten:

57

Wenn Sie Swift 2 in Xcode 8 weiterhin verwenden möchten, verwenden Sie Swift 2.3, indem Sie die Build-Einstellung Use Legacy Swift Language Version ( SWIFT_VERSION = 2.3) aktivieren .

Jim
quelle
4
@EricD: swift.org/blog/swift-2-3 : "Swift 2.2.1 und Swift 2.3 sind sehr ähnlich, wobei wichtige Änderungen mit SDK-Unterschieden zusammenhängen."
Martin R
2
Ich habe bemerkt, dass einige Gegenstände wie Swift überbrückt wurden NSURL. In ihren Swift-Gegenstücken wurden sie als optional markiert, sodass ich sie zwangsweise wirken musste. Als ich wieder zu Xcode 7.3 wechselte, musste ich den Kraftwurf entfernen.
Keji
7
Das OP hat darum gebeten Swift 2.2. Wissen Sie, ob es Swift 2.2in Xcode 8 möglich ist?
NSTJ
27
Leute, die Frage lautet, ob Swift 2.2-Code in Xcode 8.0 funktioniert. Warum würden Sie es für Swift 2.3 erklären?
Murat Yasar
2
Es geht nicht um Swift 2.2. Ich stimme dieser Antwort zu. Wenn Sie dasselbe in Betracht ziehen, kennzeichnen Sie diese Antwort bitte entsprechend wie ich.
Bartłomiej Semańczyk
33

Die Verwendung von Swift 2.3 in Xcode 8 von That Thing in Swift bietet eine gute Einführung in die Verwendung von Swift 2.3 in Xcode 8.

Folgendes wird aus dem Artikel zitiert:

Es gibt eine einzige Build-Einstellung, mit der Sie Ihre Swift-Projekte mit einer Swift-Version fortsetzen können, deren Syntax Ihren vorhandenen Projekten aus Xcode 7 weitgehend ähnelt: Verwenden Sie die Legacy-Swift-Sprachversion

Gehen Sie einfach in die Build-Einstellungen Ihres Projekts und suchen Sie nach Legacy Swift, um die richtige Build-Einstellung zu finden. Ändern Sie dann die Einstellung auf YES, um Swift 2.3 anstelle von Swift 3 in Xcode 8 zu aktivieren.

Geben Sie hier die Bildbeschreibung ein

Babatunde Adeyemi
quelle
Meins ist bereits auf "JA" eingestellt, aber ich erhalte immer noch den Fehler "Legacy Swift Version verwenden". Seltsamerweise kommt es nicht aus dem Projekt. Es kommt aus dem UITest-Framework.
KMC
NVM, ich habe gerade cdm + alt + shft + k verwendet, und der Fehler ist verschwunden.
KMC
6
In meinem Xcode 8.3.2 gibt es keine solche Einstellung. Unter Swift Compilergibt es nur eine Build-Einstellung mit dem Namen Swift Language Versionund Swift 3ist die einzige Wahl.
Thundertrick
Ich habe das gleiche getan, aber immer noch viele Fehler bekommen können Sie bitte verschiedene Arten der Lösung teilen.
Chandni
3

Als eine der möglichen Lösungen für dieses Problem könnte ich vorschlagen, zwei Versionen von Xcode (z. B. 7.3.1 und 8) nebeneinander zu installieren.

Um dies zu erreichen, sollten Sie:

  1. Laden Sie eine geeignete dmg-Datei von Downloads für Apple-Entwickler herunter . Verwenden Sie die Suche, um Xcode zu finden.
  2. Doppelklicken Sie auf diese Datei, um das bekannte Fenster "Ziehen, um Xcode in Ihrem Anwendungsordner zu installieren" anzuzeigen. Aber ziehen Sie dies für einen Moment woanders hin. Desktop wäre gut. Benennen Sie es in Xcode \ Versionsnummer \ um (wie Xcode 7.3.1) und ziehen Sie es dann in den Anwendungsordner.

Das ist es.

Artem Kirillov
quelle
Sie können es jedoch nicht direkt auf einem iOS 10-Gerät ausführen, indem Sie es an Ihren Mac anschließen.
Vishal
1

Es ist nicht möglich, Swift2.2 in XCode8 zu verwenden, indem Sie in den Build-Einstellungen "Legacy Swift Language Version verwenden" auf "Ja" setzen.

tania_S
quelle