2015-02-17 8 views
14

ich einen iOS-App habe, die von einer App besteht, ein Bündel von meinem benutzerdefinierten Rahmen, und eine Reihe von Dritter framweorks:XCode6: Empfangen Fehler „Fügen von nicht-modularem Kopf innerhalb Rahmenmodul“

App 
    MyFramework1 
    MyFramework2 
     AFNetworking.framework 
     Mantle.framework 
     .. 

erhalte ich die Fehlermeldung „Fügen von nicht-modularem Kopf innerhalb Rahmenmodul“ mit folgenden Struktur:

App/AppDelegate.m 
#import <MyFramework2/MyFramework2.h> 

MyFramework2/MyFramework2.h 
#import "MyClass.h" 

MyClass.h 
#import <Mantle/Mantle.h>  <-- Error happens here 

MyFramework2 baut selbst.

Versuch App nicht mit dem Fehler zu bauen „Include von nicht-modularen Kopfinnenrahmenmodul“ an der Linie, die Mantle.h importiert.

Dieses Problem geht weg, wenn ich Mantle.h in der Datei .m importieren, aber ich kann das nicht tun, da meine Klasse von MTLModel erbt, die in Mantle definiert ist.

Dieses Problem wurde behoben here, aber es ist nicht Swift-spezifisch.

Vorschläge gibt es (1) stellen Sie sicher, dass alle benutzerdefinierten Framework-Header öffentlich sind. Sie sind. Und (2) gehen Sie zu Build-Einstellungen unter "Ziel" und setzen Sie "Nicht-modulare Includes in Framework-Modulen zulassen" auf YES.

Weiß jemand, warum das passiert und wie man es beheben kann? Wird die Einstellung "Nichtmodulare Includes in Framework-Modulen zulassen" auf "YES" als "Good Practice" festgelegt? Warum ist das ein Fehler?

Danke.

Antwort

14

Wählen Sie die .h-Datei im Projektnavigator. Im Zielmitgliedschaftsbereich auf der rechten Seite befindet sich neben dem Ziel ein Dropdown-Menü. Wählen Sie dort "public" (wahrscheinlich ist gerade "project" ausgewählt).

enter image description here

+0

Hinweis: Dies ist ein Problem, auch wenn Sie auf der CLANG eingeschaltet haben Einstellung für „Allow Nicht modular In Rahmenmodule Enthält“, die Ihre Antwort löst. Vielen Dank. –

+2

@Nikos M. können Sie bitte einen Screenshot hinzufügen. Ich kann das Dropdown nicht sehen. Bitte helfen Sie. Vielen Dank – Bonnke

+0

Wo ist das Dropdown-Menü für die Zielmitgliedschaft? – lenhhoxung

Verwandte Themen