Diese Antwort befasst sich mit dem Anwendungsfall, in dem Sie möglicherweise bereits einen Objective-C-Code haben, der Swift-Klassen aufruft, und dann wird dieser Fehler angezeigt.
So beheben Sie ein Problem
Die folgenden Schritte haben letztendlich alle Probleme für mich gelöst. Ich habe oben jemanden gelesen, der das "Huhn und das Ei" erwähnt, und genau dieses Konzept hat mich zu diesem Verfahren geführt. Dieser explizite Prozess zeigt, dass jeder Objective-C-Code, der auf Swift-Klassen verweist, entfernt werden muss, bis der Header generiert wurde.
- Kommentieren Sie die # import "ProductModuleName-Swift.h" -Anweisung in Ihrer Objective-C-Implementierungsdatei aus
- Kommentieren Sie alle Verweise in der Objective-C-Implementierungsdatei auf Swift Classes aus
- Reinigen und bauen
- Beheben Sie alle Fehler / Warnungen
- Entfernen Sie den Kommentar zur # import "ProductModuleName-Swift.h" -Anweisung
- Bereinigen und erstellen (erfolgreich oder verbleibende Fehler beheben, stellen Sie sicher, dass Sie zu diesem Zeitpunkt keine Swift-Klassen in Objective-C referenzieren . Wenn ja, kommentieren Sie diese vorübergehend aus.)
- Stellen Sie sicher, dass "ProductModuleName-Swift.h" durch Cmd-Klicken
auf den Klassennamen der # import "ProductModuleName-Swift.h" -Anweisung generiert wird
- Entfernen Sie den Kommentar zum Code, der auf Swift-Klassen verweist, in der Objective-C-Implementierungsdatei.
- Clean & Build wie gewohnt (die Datei "ProductModuleName-Swift.h" sollte generiert werden und Ihr Objective-C-Code, der auf Swift-Klassen verweist, kann wie gewohnt verwendet werden.)
Hinweis: Die oben angegebenen Antworten zum Ändern von Leerzeichen in Unterstriche und zum Definieren des Moduls in JA gelten weiterhin, wenn Sie diesen Vorgang ausführen, ebenso wie die in der Apple-Dokumentation angegebenen Regeln .
Überbrückungskopfpfad
In einem Fehler wurde die Datei ProductModuleName-Bridging-Header.h während des Erstellungsprozesses nicht gefunden. Diese Tatsache erzeugte einen Fehler
<unbekannt>: 0: Fehler: Bridging-Header '/Users/Shared/Working/abc/abc-Bridging-Header.h' existiert nicht
Bei näherer Betrachtung der Fehler angezeigt , dass die Datei nie an der Stelle beschrieben existieren würde , weil es tatsächlich an (gelegen war ein Irrweg )
'/Users/Shared/Working/abc/abc/abc-Bridging-Header.h'. Eine schnelle Suche in den Build-Einstellungen für Ziele / Projekte, um die Korrektur manuell vorzunehmen, und die Datei abc-Swift.h wurden erneut automatisch generiert.