Ich habe Xcode auf 8.1 GM aktualisiert und erhalte jetzt den folgenden Fehler für SwiftyJSON. Andere importierte Frameworks scheinen zu funktionieren. Gibt es eine Möglichkeit, dies in Swift 3 zu erzwingen, bis SwiftyJSON das Framework aktualisiert? Ich habe Karthago verwendet, um Frameworks zu importieren / zu aktualisieren. Ich habe auch versucht, das Ein- Use Legacy Swift language version
und Ausschalten ohne Erfolg zu ändern .
Mit Swift 3.0 kompilierte Module können nicht in Swift 3.0.1: Modules / SwiftyJSON.swiftmodule / arm64.swiftmodule importiert werden
quelle
Cartfile
sodass ich einfach tippen kann,carthage update
ohne dass andere Entwickler die zusätzlichen Flags kennen / sich darum kümmern müssen?Entfernen Sie den App-Chache aus DerivedData und erstellen Sie ihn neu. Der Fehler kann behoben werden.
Der DerivedData-Pfad lautet wie folgt:
quelle
Stellen Sie sicher, dass Sie das neue XCode 8.1 GM-Paket in Ihrem Anwendungsordner abgelegt haben. Dieses Problem trat auf, als einer von uns Karthago ausführte, um seine Abhängigkeiten zu aktualisieren, aber die alte XCode 8.0-Anwendung im Anwendungsordner nicht ersetzt hatte (8.1 GM wurde vom Desktop ausgeführt).
Sie wollen sicherstellen, dass , wenn Sie die folgende im Terminal auszuführen:
xcrun swift -version
dass es zurückgibtApple Swift version 3.0.1
.quelle
carthage update --platform iOS --no-use-binaries
und es funktioniert immer noch nicht. Ich habe mein Projekt bereinigt und Xcode neu gestartet und erhalte immer noch den Fehler. Kann ich noch etwas ausprobieren?Apple Swift version 3.0.1 (swiftlang-800.0.58.6 clang-800.0.42.1) Target: x86_64-apple-macosx10.9
Das Aktualisieren der Standardeinstellung
Xcode
auf eine neue am Terminal hat bei mir funktioniert.Schritt 1: Verwenden Sie den folgenden Befehl, um die Xcode-Version auf dem Terminal auf den neuesten Stand zu bringen. Ref
Schritt 2: Versuchen Sie nun den Befehl carthage update
quelle
Nur um die neuesten Updates zu geben:
Carthage hat am 27. Februar 2017 die Version 0.20 veröffentlicht .
Karthago verwendet jetzt nur die Pre-Build-Binärdatei, wenn die verfügbare Pre-Build-Binärdatei kompatibel ist .
Das heißt, Sie müssen nicht mehr verwenden:
--no-use-binaries
um inkompatibles Pre-Build-Framework zu vermeiden.Stellen Sie also sicher, dass Sie eine Karthago-Version haben, die größer ist als
0.20
und tun Sie einfach Folgendes:quelle
--no-use-binaries
? Karthago sollte erkennen können, ob die Binärdatei mit Ihrer Compilerversion kompatibel ist. Wenn es nicht kompatibel ist, soll es die heruntergeladene Binärdatei automatisch löschen und das Framework lokal erstellen.Genau wie @zirinisp sagte:
carthage update --platform iOS --no-use-binaries
xcrun swift -version
um die Swift-Version anzuzeigenXcode->preferences->locations
Um die abgeleiteten Daten zu löschen und Daten zu archivieren, müssen Sie die Befehlszeilentools auf "Xcode 8.1
" ändern.xcrun swift -version
können Sie sehen, dass die schnelle Version 3.0.1 istUse Legacy Swift Language Version = NO
ich hoffe es hilft dir
quelle
Verschieben Sie die Beta / GM-Version des Ordners Xcode in den Ordner / Applications und nennen Sie sie Xcode-Beta
Überprüfen Sie die Ausgabe von:
xcrun swift --version
Wenn Sie diesen Befehl im Terminal ausführen, sollte seine Ausgabe mit der schnellen Version übereinstimmen, die die App kompilieren soll, da Karthago die Ausgabe dieses Befehls verwendet, um die lokale Swift-Version zu bestimmen.
Aktualisieren Sie die Xcode-Version auf dem Terminal auf den neuesten Stand, indem Sie den folgenden Befehl ausführen:
sudo xcode-select -s /Applications/Xcode-beta.app/
Erstellen Sie die Bibliotheken für iOS und verhindern Sie, dass Karthago vorhandene (noch nicht kompatible) vorkompilierte Binärdateien herunterlädt, indem Sie den folgenden Befehl ausführen:
carthage update --platform iOS --no-use-binaries
Reinigen und bauen
quelle
Ich hatte genau das gleiche Problem mit der Bibliothek
XCTest_Gherkin
, was für mich funktionierte, war:Product
->Scheme
->XCTest-Gherkin
Product
->Build
Ich hoffe es hilft. Ich benutze Cocoapods.
quelle
Stellen Sie in den Xcode- Build-Einstellungen sicher, dass Ihre Framework-Suchpfade den entsprechenden Carthage Build-Ordner enthalten:
quelle