Mit dem neuen Xcode 8 beta 4
ist in der CopySwiftLibs
-Erstellungsphase folgender Fehler aufgetreten:
Effective srcDirs: {(
<DVTFilePath:0x7f865961e970:'/Volumes/Data/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/Swift/iphonesimulator'>,
<DVTFilePath:0x7f8657d02b20:'/Volumes/Data/Xcode-beta.app/Contents/Developer/Toolchains/Swift_2.3.xctoolchain/usr/lib/Swift/iphonesimulator'>
)}
fehler: Die folgenden Binärdateien verwenden inkompatible Versionen von Swift:
/Users/user/Projects/git/iphone-Swift-1/DerivedData/myApp/Build/Products/Debug-iphonesimulator/myApp.app/myApp
/Users/user/Projects/git/iphone-Swift-1/myApp/myAppApi.framework/myAppApi
myAppApi ist ein Unterprojekt im Arbeitsbereich, das gemeinsam genutzten Code enthält (es verwendet Alamofire
).
Eine Anmerkung: Ursprünglich haben wir das Projekt von Swift 2.2 auf Swift 2.3 konvertiert und dann manuell auf 3.0 aktualisiert.
Hat jemand eine Idee, was diesen Fehler verursachen könnte?
Vielen Dank!
Ich hatte das gleiche Problem, aber es gelang mir, zu beheben durch:
Ich habe dies auf Xcode 8 mit Swift 3 gemacht.
Dieses Problem kann auch auftreten, wenn Swift 2.3 als Code für die Container-App verwendet wird und Sie eine neue Erweiterung in Xcode 8 erstellen.
Um das obige Szenario zu lösen ...
Hinweis: Der gesamte Code muss sich in derselben Swift (kompatiblen) Version befinden, damit er ohne Fehler kompiliert werden kann.
Eine Möglichkeit, dieses Problem zu lösen, besteht jedoch darin, dass Sie auf Swift 2.3 bleiben und dann Use Legacy Swift Language Version Ihres Erweiterungsziels auf "Ja" setzen.
Sie finden diese Option, während Xcode 8 wie folgt geöffnet ist:
Hinweis: Möglicherweise müssen Sie den überschriebenen Code in den Erweiterungsvorlagen korrigieren, da diese ursprünglich in Swift 3 enthalten waren.
Bevor Sie etwas tun ...
(Wenn Sie Xcode 8.0-kompatibel mit Ihrem Projekt verwenden können)
Ihr Projekt ist standardmäßig auf Xcode 3.2-kompatibel eingestellt
Versuchen Sie, Ihr Projekt zu erstellen.
Wenn dies nicht funktioniert, probieren Sie die anderen vorgeschlagenen Lösungen aus.
Hinweis: Nachdem Sie den Fehler behoben haben, können Sie sogar wieder auf Xcode 3.2-kompatible Geräte umstellen. Der Fehler sollte funktionieren, aber es können "später" andere Build-Probleme auftreten.
Empfehlung: Vor dem Debuggen eines vorhandenen Projekts. Schließen Sie Ihr Projekt und komprimieren Sie eine Kopie Ihrer Projektdatei, wenn Sie beim Erstellen Ihres Projekts kein Git-Repository erstellt haben.
Dies wurde behoben, indem die eingebetteten Binärdateien im Projekt gelöscht wurden. Um dies zu tun:
Hinweis 1: Sie sollten sie nicht aus dem Abschnitt "Verknüpfte Frameworks und Bibliotheken" löschen müssen (sie werden automatisch entfernt, wenn Sie sie aus den "Embedded Binaries" entfernen).
Anmerkung 2: Ich habe viele Abhängigkeiten und verwende CocoaPods. Ich habe nichts in den "Embedded Binaries" und nur das "Pods_ [YourApplicationName] .framework" im Abschnitt "Linked Frameworks and Libraries".
Ich hatte verschiedene Bibliotheken über Karthago integriert. Während des Prozesses habe ich jedoch einige von ihnen auf Cocoapods umgestellt und vergessen, die alte .frameworks
-Datei vom Projektziel zu entfernen.
Durch das Entfernen wurde der Build-Fehler behoben.
Ich hatte das gleiche Problem ... Meine Lösung bestand darin, das 'myApp'-Verzeichnis in' myAppmyApp 'umzubenennen und dann die App erneut auszuführen. Ein neues "myApp" -Verzeichnis wurde erstellt und die App lief auf meinem iPhone wieder gut.
Ein Unterschied in Ihrer Situation könnte der folgende sein: Der Name meiner App, sagen wir 'myApp' im Verzeichnis 'DerivedData', war myApp verkettet mit: '-'
Vielleicht hilft dir das.
Mit freundlichen Grüßen.
Ich hatte die gleiche Fehlermeldung, nachdem ich eine Swift 3-Version eines Frameworks hinzugefügt hatte.
Mein Ziel framework search path
war immer noch so konfiguriert, dass sowohl die Swift 2- als auch die Swift 3-Version desselben Frameworks gefunden werden konnte, sodass mein Projekt an der Swift 2.3-Version hängen blieb.
Für mich bestand die Lösung darin, das alte Framework aus meinem Projektverzeichnis zu entfernen und die Ordnerreferenz aus dem framework search path
zu löschen.
Also poste ich einfach die Lösung, die ich nach einer Stunde Debugging gefunden habe.
Seit Xcode 9 kann dies vom Compilerprotokoll verfolgt werden.
Wenn Sie bis zum Ende des Compilerprotokolls scrollen, werden Sie feststellen, dass dieses Problem durch einen Absturz der Typüberprüfung verursacht wird.
Sie müssen alle Abhängigkeiten auf Swift 3
umstellen. In Ihrem Fall muss Alamofire auf Swift 3
verzweigt werden