2014-09-11 6 views
11

Bis heute Nachmittag, als ich den letzten Xcode 6 heruntergeladen habe, konnte ich mit Swift auf meiner 10.9-Maschine herumspielen. Jetzt bekomme ich diesen Fehler:Übersetzen Swift auf 10.9?

OS X targets using Swift cannot be built against an SDK older than 10.10, but the effective SDK is 10.9. 

Ich hatte meine Kopie von Xcode 6B7 gerettet, aber jetzt das Projekt in dieser Version Öffnen verursacht auch den gleichen Fehler.

Wer hat eine Lösung? Ich möchte 10.10 nicht auf diesem Rechner installieren.

+0

Ok, also das erste Problem besteht darin, dass sie die 10.10 SDK in der Xcode-Bundle zu setzen vergessen. Netter Apfel. Sie können eines davon herunterladen, indem Sie die Betaversion 6.1 herunterladen und dann kopieren. Die App kompiliert jetzt. Leider wird die App nicht gestartet, obwohl das Ziel auf 10,9 eingestellt ist, und beschwert sich, dass meine 10.9.2-Maschine älter als 10.9 ist. –

Antwort

5

Ok, also hier ist die Schaufel:

Nach dem GM Herunterladen Sie eine nicht-funktionale Xcode haben, vergessen Apple die sdk im App-Bundle enthalten. So, jetzt müssen Sie auch die 6.1 Beta herunterladen, Paketinhalt zeigen, und gehen Sie zu dem Ordner:

/Volumes/Xcode/Xcode-Beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer 

Note Ich habe die App Bundle aus dem Disk-Image geöffnet, wodurch das Volumen Namen. In diesem SDKs-Ordner finden Sie MacOSX10.9.sdk und MacOSX10.10.sdk. Die GM-Version fehlt später. Machen Sie also eine Kopie davon, wie Ihren Desktop.

OK, jetzt finden Sie den gleichen Pfad in der GM-Version. Mine ist in meinem Ordner Programme installiert haben, so ist es hier:

/Applications/Xcode 6.app/Contents/Developer/Platforms/MacOSX.platform/Develope 

Sie werden feststellen, dass der MacOSX10.10.sdk Ordner fehlt. Nett. Ok, kopiere die Version aus der Beta in diesen Ordner.

Starten Sie Xcode neu, öffnen Sie Ihr Projekt und bereinigen Sie. Sehen Sie jetzt SEHR SORGFÄLTIG nach alle Einstellung für SDK oder Bereitstellung Ziel. Das SDK muss 10.10 sein, das Implementierungsziel muss 10.9 sein. Dies erscheint an vielen Stellen auf mehreren Bildschirmen, also schauen Sie sich sorgfältig an.

Kompiliert und läuft. Und behebt die Abstürze, die ich in Xcode in B6 und B7 sah.

+4

Apple hat nicht "vergessen". Die endgültige Xcode 6-Version kann das 10.10 SDK nicht enthalten, da es noch Beta ist. – user102008

+3

Ich interessiere mich nicht so sehr für das "Warum" als das "Wie repariere ich". –

+3

Dies ist ein Hack. Es ist kaum ein "Fix" zu sagen. Es wäre irgendwo in der Mitte von Fix und Pause. Und ein Hack ohne Verständnis von "warum" meist näher an einer Pause. – Eonil

8

Xcode 6.0 unterstützt nur Swift mit iOS. Die Verwendung von Swift mit Mac OS X wird in dieser Version von Xcode nicht unterstützt und Sie müssen Xcode 6.1 beta dafür bekommen. Frühere Betas von Xcode 6.0 haben Swift für OS X unterstützt, aber das lag daran, dass Xcode 6.1 Beta zu dieser Zeit noch nicht veröffentlicht war.

Von den Xcode 6.0 Release Notes:

Swift Support for OS X

*A future version of Xcode to be released along with OS X Yosemite will add Swift support for OS X, including playgrounds and REPL. Xcode 6.0 only supports Swift for iOS projects and playgrounds. A beta release of Xcode with Swift support for both OS X and iOS is available at developer.apple.com/xcode/downloads/