Schnell. Das Objective-C-Modul 'Alamofire' konnte nicht erstellt werden.

117

Neue Vanille-Submodul-Installation von Alamofire unter Verwendung von XCode6 und Befolgen der Anweisungen zu einem T. Hier stimmt einfach etwas nicht. Der Fehler, den ich erhalte, ist "Das Objective-C-Modul" Alamofire konnte beim Importieren von Alamofire nicht erstellt werden. Hier ist ein Screenshot des Fehlers, den ich erhalte:

Geben Sie hier die Bildbeschreibung ein Und meine Konfiguration:

Geben Sie hier die Bildbeschreibung ein

Stopshinal
quelle
Ich denke, Sie müssen Alamofire gemäß den hier gegebenen Anweisungen installieren. github.com/Alamofire/Alamofire
Saurabh Prajapati
Hast du es zum Laufen gebracht? es hat bei mir funktioniert und nach einem weiteren "Build and Run" hat es aufgehört und ich habe die gleiche Fehlermeldung bekommen ... :(
Georg
2
Ein Kollege hatte gerade die gleiche Fehlermeldung, aber der Grund war, dass er immer noch Xcode 6.1 verwendete (es ist die 6.3-Ära, in der wir uns befinden, als ich dies schreibe). Wenn Sie dies nur zur Veranschaulichung sagen, sollte jemand anderes mit der gleichen Sache zu kämpfen haben.
Villapossu

Antworten:

103

In diesem Fall erstellen Sie die Frameworks zunächst separat. In deinem Fall:

  • Ändern Sie das Schema in Alamofire
  • Build ( ⌘B )
  • Wechseln Sie zurück zu Ihrem Schema
  • Lauf
Daniel Larsson
quelle
3
Gute Antwort; Ich war mir nicht bewusst, das Build-Schema zu ändern, um diese Art von Fehlern zu beheben!
Professor
1
Danke für die Hilfe.
Tidane
5
Wenn Sie das Schema separat erstellen müssen, bedeutet dies wahrscheinlich, dass Sie das Framework in den Build-Einstellungen Ihrer Anwendung nicht korrekt als Zielabhängigkeit festgelegt haben. Wenn Sie dies tun, sollten Sie es nicht manuell erstellen müssen.
Charles A.
Ich habe dafür gestimmt, da es in Xcode funktioniert. Leider funktioniert es nicht, wenn Sie über die Befehlszeile oder für Release erstellen.
Eneko Alonso
Dies hat ein Problem behoben, das ich mit GoogleApiClient / Drive hatte. Die Erstellung würde erfolgreich sein, aber sobald Änderungen an der Datei vorgenommen wurden, würde sich Xcode über den Import beschweren.
Nick Alexander
53

Gehen Sie zu Developer / Xcode / DerivedData und löschen Sie den Ordner für Ihr Framework. (Oder löschen Sie einfach DerivedData selbst)

Wenn Sie eine App in einem laufenden Simulator erstellt haben, müssen Sie die App dort löschen.

Dann Clean & Build

Sean Howell
quelle
Dies hat auch bei mir funktioniert, aber dann stoße ich auf mehrere Befehlsprodukte. Dieser Link hilft: stackoverflow.com/questions/50718018/… .
Bhimbim
32

Das funktioniert bei mir immer:

  1. Beenden Sie Xcode
  2. Löschen ~/Library/Developer/Xcode/DerivedData
  3. Ändern Sie das Schema Ihres Frameworks und erstellen Sie ⌘B
  4. Ändern Sie das Schema Ihrer App und erstellen Sie ⌘B
Sam Soffes
quelle
22

Das Löschen des DerivedData- Ordners und das Bereinigen und Erstellen des Projekts haben dieses Problem für mich gelöst.

Isuru
quelle
15

Versuchen Sie Folgendes in dieser Reihenfolge und einer der Schritte sollte funktionieren.

  1. Cmd+ B- Erstellt den Arbeitsbereich und sollte möglicherweise das gewünschte Ziel oder Modul erstellen.

  2. Cmd+ Kund dann Cmd+ B- Reinigen und dann bauen

  3. Cmd+ Shift+ Option+ Kund Cmd+ B- Build-Ordner bereinigen

  4. Beenden Sie Xcode, löschen Sie abgeleitete Daten, starten Sie Xcode und Cmd+ Shift+ Option+ Kdann Cmd+B

Dies ist der sauberste Weg, um die abgeleiteten Daten und andere Caches von Xcode zu bereinigen.

ravisekahrp
quelle
Wenn Sie die iCloud-Synchronisierung verwenden (z. B. wenn sich das Projekt im Ordner "Dokumente" befindet, damit es problemlos mit mehreren Macs synchronisiert werden kann), suchen Sie nach Dateien mit dem Namen : XXX 2.swift. Suchen und löschen Sie alle und führen Sie sie aus pod install.
John Pang
12

Wenn beim Importieren eines dynamischen Frameworks dieser Fehler auftritt, stellen Sie sicher, dass das Framework in den Zielabhängigkeiten des Ziels enthalten ist.

Project > "Target" > Build Phases > Target Dependencies

David James
quelle
Wenn Sie mit einem anderen Framework arbeiten, das im selben Arbeitsbereich entwickelt wurde, müssen Sie das Projekt als verknüpfte Bibliothek anstelle der Framework-Datei hinzufügen, da das Framework sonst nicht als Zielabhängigkeit angezeigt wird.
Dávid Pásztor
11

Sauber bauen hat bei mir funktioniert.

  1. Bauen Sie sauber für Alamo
  2. Erstellen Sie sauber für HTTPDemo
Nick Mitchell
quelle
6

Kommentieren Sie den Import und den gesamten Code aus, erstellen Sie ihn, führen Sie ihn aus und kommentieren Sie ihn aus. Es hat bei mir funktioniert ...

Xytor
quelle
1

Ich habe dieses Problem in einem meiner Objective-C / Swift-Hybridprojekte behoben.

Fügen Sie in Ihrer Objective-C-Bridging-Datei die folgende Zeile hinzu:

#import <Alamofire/Alamofire.h>

Eddie Lau
quelle
0

Jeder nicht erstellte Pod kann ebenfalls diesen Fehler verursachen. (In meinem Fall konnte ein alter Pod mit veralteter Syntax nicht erstellt werden).

Sie können versuchen pod update, Ihre Pods auf die neueste Version zu aktualisieren und zu sehen, wie es läuft.

Gang Fang
quelle
Wenn Sie die iCloud-Synchronisierung verwenden (z. B. wenn sich das Projekt im Ordner "Dokumente" befindet, damit es problemlos mit mehreren Macs synchronisiert werden kann), suchen Sie nach Dateien mit dem Namen : XXX 2.swift. Suchen und löschen Sie alle und führen Sie sie aus pod install.
John Pang
0

Verrückte Lösung für dieses Problem - Nur funktionierende Lösung für mich

Erstellen Sie ein neues Schema und fügen Sie das fehlerhafte Framework hinzu. In diesem Fall 'Alamofire'. Führen Sie alle diese Schemata aus.

Sobald Sie alle Schemata kompiliert haben, funktioniert auch Ihr Projektziel einwandfrei.

Es mag wie eine verrückte Lösung erscheinen, aber nur eine funktionierende Lösung für mich.

Saranjith
quelle
0

Wenn gültige Architekturen des Alamofire-Projekts nicht die gültigen Architekturen Ihres Projekts enthalten, tritt der Fehler "Objective-C-Modul konnte nicht erstellt werden ..." auf.

Fügen Sie diese Architekturen i386 x86_64 arm64 arm64e armv7 armv7s armv6 armv64 zu den 'Gültigen Architekturen ' des Alamofire-Projekts in den ' Build-Einstellungen ' hinzu.

Erstellen Sie für beide Projekte dasselbe Zielgerät. Erstellen Sie beispielsweise zuerst das Alamofire-Projekt für iPhone 8 (13.2) und dann Ihr Projekt für denselben Simulator.

Wenn die Erstellung des Alamofire-Projekts sehr kurz dauert, dh etwa 0,5 Sekunden, bedeutet dies, dass beim Alamofire-Projekt ein Fehler auftritt, da sich die Architektur des ausgewählten Simulators nicht in den gültigen Architekturen befindet .

Yusuf Demirci
quelle