wake-up-neo.net

Apple Mach-O Linker & Ditto Error - Xcode 8

Ich habe gerade meinen Xcode auf Xcode 8 aktualisiert und versuche jetzt, den Code meines Projekts in Swift 2.3 zu konvertieren. Ich konnte mit Xcode 8 ein paar Mal fehlerfrei bauen. Nun wurden folgende Fehler angezeigt:

Fehler Nr. 1: Apple Mach-O-Linker-Fehler: Linker-Befehl mit Exit-Code 1 fehlgeschlagen

ld: datei nicht gefunden: /Users/Linus/Library/Developer/Xcode/DerivedData/MyApp-asdjeshhsetnfxbegcsbcipdreneewgr/Build/Intermediates/MyApp.build/Debug-iphonesimulator/MyApp.build/Objects-nadrachrachrptr/host/adjects/
clang: Fehler: Linker-Befehl mit Exit-Code 1 fehlgeschlagen (verwenden Sie -v, um den Aufruf zu sehen)

Ich weiß gar nicht, was eine .o-Datei ist. Die Swift-Datei von DownloadsViewController ist jedoch vorhanden.

Fehler # 2: Ditto-Fehler: Befehl/usr/cin/ditto schlug mit Exit-Code 1 fehl

ditto: Kein realer Pfad für die Quelle '/Users/Linus/Library/Developer/Xcode/DerivedData/MyApp-asdjeshhsetnfxbbciegrfdpdreneewgr/Build/Intiates/MyApp.build/Debug-iphonesimulator/MyApp.build/Debug-iphonesimulator/MyApp.build/ MyApp-Swift.h '
Befehl/usr/bin/ditto mit Exitcode 1 fehlgeschlagen

Der Ditto-Fehler tritt dreimal auf: für MyApp.swiftdoc, MyApp.swiftmodule und MyApp-Swift.h.

Danke im Voraus!

17
LinusGeffarth

AKTUALISIEREN

Xcode beschloss magisch, die Fehler selbst zu beheben. Mein Projekt läuft wieder ohne Fehler.
Ich habe nichts getan, um diesen Fehler zu beheben.

5
LinusGeffarth
  1. Beenden Sie Xcode
  2. Starten Sie das System neu 
  3. Wählen Sie Xcode -> Voreinstellungen. 
    Dies öffnet ein Popup-Fenster. Wählen Sie "Standorte". In Locations sehen Sie 'Abgeleitete Daten'. Klicken Sie auf das Pfeilsymbol rechts neben dem Pfad.
    Dies öffnet einen Ordner mit 'Abgeleiteten Daten' und löscht ihn.
  4. Reinigen Sie das Produkt und führen Sie es aus 
41
RakeshDipuna

Stellen Sie sicher, dass Sie das Projekt aus der .xcworkspace-Datei statt aus dem .xcodeproj öffnen.

27
Agu Dondo

schritt 1 = Klicken Sie im Navigationsmenü auf das Projekt

schritt 2 = Wählen Sie das Projekt aus

schritt 3 = Build-Einstellungen 

schritt 4 = Such-Aktivierungsbitcode, wenn Bitcode ja ist, dann zu Nein wechseln 

17
Parth Changela

Keine der vorherigen Antworten hat mein Problem gelöst ... Ich denke, es kommt von Änderungen in der Cocoapods podFile, von der Verwendung von Frameworks bis zur Nichtbenutzung 

Frameworks wurden noch in Ziel> Allgemeine Eigenschaften> Verknüpfte Frameworks erinnert. Ich entfernte sie Ich entferne auch das -framework und die entsprechenden Rahmen von anderen Linker-Flags (Speichern von geerbten und objC-Flags)

Hoffe das könnte helfen

9

Dies ist mir passiert, nachdem ich meine App während der Ausführung gelöscht habe.

Ich habe es beim Reinigen des Projekts gelöst.

Produkt> Reinigen oder Umschalt + Befehl + K

5
calosth

Dies liegt daran, dass zu einem bestimmten Zeitpunkt einige Projektdateien nicht kompiliert wurden. In meinem Fall war AppDelegate.Swift nicht im Compiler. Also habe ich es manuell hinzugefügt und es hat funktioniert.

 enter image description here

4
Ewerson

XCode mit folgenden cmds säubern und neu erstellen:

rm -rf ~/Library/Developer/Xcode/DerivedData/
killall Xcode 2> /dev/null
killall Instruments 2> /dev/null
killall 'iOS Simulator' 2> /dev/null
killall Simulator 2> /dev/null
killall 'Simulator (Watch)' 2> /dev/null
killall ibtoold 2> /dev/null
killall simctl 2> /dev/null
# There may be others
# Kill the service itself
Sudo killall -9 com.Apple.CoreSimulator.CoreSimulatorService
rm -rf ~/Library/*/CoreSimulator
1
Shijing Lv

Für meine reagierende native App habe ich einen Ordner eines Testprojekts inProject Navigator und Targets gelöscht. Es hat mein Problem gelöst.

1
aolmez

Wenn Sie Bitcode auf "Nein" setzen, wurde dieses Problem behoben. Dies ist in den Build-Einstellungen zu finden.

1
PiKa

Wenn Sie ein Framework über Build Phases importieren, legen Sie es in den Ordner Ihres Projekts und fügen Sie es in Link Binary with Libraries hinzu. Eigentlich habe ich dieses Problem bereits erlebt, ich bin sehr frustriert über diesen Fehler, bis ich wusste, dass ich das .framework in den Ordner meines Projekts legen muss. Die Hoffnung hilft 

1
vidalbenjoe

Machen Sie sich keine Sorgen, gehen Sie einfach zu Ihrem Projektziel und nehmen Sie die Einstellungen vor und suchen Sie nach Bitcode, ändern Sie den Wert in JA in NEIN.

1
Sandip Mahajan

Ich hatte das gleiche Problem, als ich Xcode von einer früheren Version 7 auf den neuen XCode 8 umstellte. Im neuen Xcode (jetzt 8.3.3) gibt es weitere Einstellungen im Compiler. 

Wenn Sie die Projekteinstellungen in neuen Xcode aktualisieren (mit Editor-> Einstellungen überprüfen), werden diese neuen Einstellungen angewendet und auf den Standardwert YES gesetzt. Nach diesem Update hatte ich den Linker-Fehler!

In meinem Projekt habe ich die vorherige Version der Datei .pbxproj mit der neuen (nach der Überprüfung der Einstellungen) mit Beyond Compare (oder ähnlichem) verglichen.

Auf diese Weise kann ich die neuen Einstellungen sehen, die in der neuen Version von Xcode hinzugefügt wurden, und den neuen Wert für Einstellungen auf NO setzen. Nach diesem Update war alles in Ordnung und der Linker-Fehler verschwindet.

1
Lorenzo

Für mich war es ein Problem mit der Eingeborenenhaptik. Ich denke, es lag an einer Änderung in CocoaPods, aber auch an der Änderung der Dateispeicherorte. Ich habe es einfach entfernt und neu installiert. Hoffe das hilft jemandem.

UPDATE

Der Build war erfolgreich, wenn er ausgeführt wurde, stürzte er ab. Um dieses Problem zu lösen, habe ich File> Add Files to Project für GoogleService-Info.plist verwendet und es hat funktioniert.

0
JeremyF

Neben der Bereinigung abgeleiteter Daten und des Projekts und dem Neustart von Xcode habe ich festgestellt, dass die Konvertierung Ihres Projekts in die aktuelle Swift-Syntax und das Installieren von Pods hilfreich sind, falls Sie sie haben.

Um Ihr Projekt erneut zu konvertieren, müssen Sie die Build-Einstellung für Swift_version auf yes zurücksetzen, damit Ihr Ziel in der Konvertierungsliste angezeigt wird.

0

Ich hatte das gleiche Problem, weil ich eine Klasse definiert hatte (mit @interface), aber keine Implementierung (mit @implementation) dafür bereitstellte. Es war eine einfache Klasse, also wurde sie auch von einer leeren Implementierung gelöst.

0
CSawy

Das Problem, das ich mit XCode 8.2.1 (Version 8C1002) gefunden habe, nachdem ich das Projekt in Current Swift Syntax (Swift 3) konvertiert hatte. Ich musste es nur nach der Reinigung wieder aufbauen, und die Fehler verschwanden.

0

Wenn das Verfahren zum Bereinigen und Deaktivieren des Bitcodes nicht funktioniert, ist es möglich, dass der Grund für die Fehler ein komplexer Syntaxfehler in Ihrem Code ist.

0
Rainer Niemann

Überprüfen Sie auch, ob Sie in eine Ihrer Klassen eine "* .m" -Implementierungsdatei importieren, die dasselbe Problem verursachen kann. 

Das Entfernen der Importanweisung kann das Problem beheben

0
CaptainBluMagic

Bitte stellen Sie sicher, dass Sie die folgenden Änderungen in der Arbeitsbereichseinstellung in Ihrem xcode vorgenommen haben:

Bitte gehen Sie zu Ihrer Arbeitsbereichseinstellung und nehmen Sie die folgenden Änderungen vor:

Arbeitsbereichseinstellung: Build System: Legacy Build System

Pro-Benutzer-Arbeitsbereich DerivedData: Relativer Speicherort des Arbeitsbereichs Build System Use User Setting

Ich hoffe es hilft:

0
Andy Rubin