2015-02-17 7 views
14

Mam aplikację na iOS, która składa się z aplikacji, grono moich własnych ram, a banda framweorks osób trzecich:XCode6: Odbieranie błąd „Include non-modułowego nagłówku wewnątrz modułu ramowego”

App 
    MyFramework1 
    MyFramework2 
     AFNetworking.framework 
     Mantle.framework 
     .. 

otrzymuję błąd „Include non-modułowego nagłówku wewnątrz modułu ramowego” o następującej strukturze:

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

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

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

MyFramework2 buduje sama.

Próbując zbudować App niepowodzeniem z błędem „Include non-modułowego nagłówku wewnątrz modułu ramowego” na linii, która importuje Mantle.h.

Ten problem zniknie, jeśli importuję plik Mantle.h w pliku .m, ale nie mogę tego zrobić, ponieważ moja klasa dziedziczy po MTLModel, która jest zdefiniowana w Mantle.

Ten numer został rozwiązany pod numerem here, ale nie jest on specyficzny dla Swift.

Propozycje są (1) upewnij się, że wszystkie niestandardowe nagłówki ramki są publiczne. Oni są. I (2) przejdź do Build Settings w "Target" i ustaw "Allow Non-modular Includes in Framework Modules" na YES.

Czy ktoś wie, dlaczego tak się dzieje i jak to naprawić? Czy ustawienie "Zezwalaj na nie modułowe uwzględnianie w modułach szkieletowych" na TAK jest dobrą praktyką? Dlaczego to jest błąd?

Dzięki.

Odpowiedz

14

Wybierz plik .h w nawigatorze projektu. W docelowym obszarze członkostwa po prawej stronie znajduje się menu rozwijane obok celu. Wybierz "publiczny" tam (prawdopodobnie "projekt" jest teraz zaznaczony).

enter image description here

+0

Uwaga jest to problem nawet jeśli włączył dzyń ustawienie „Zezwalaj niemodularnego obejmuje w ramowym Modules”, który rozwiązuje odpowiedź. Dzięki. –

+2

@Nikos M. możesz dodać zrzut ekranu. Nie mogę zobaczyć tego menu. Proszę pomóż. Wielkie dzięki – Bonnke

+0

Gdzie jest menu rozwijane dla członkostwa docelowego? – lenhhoxung

Powiązane problemy