У меня есть приложение iOS, состоящее из приложения, куча моих пользовательских фреймворков и группы сторонних фреймворков:
App
MyFramework1
MyFramework2
AFNetworking.framework
Mantle.framework
..
Я получаю сообщение об ошибке "Включить немодульный заголовок внутри фрейм-модуля" со следующей структурой:
App/AppDelegate.m
#import <MyFramework2/MyFramework2.h>
MyFramework2/MyFramework2.h
#import "MyClass.h"
MyClass.h
#import <Mantle/Mantle.h> <-- Error happens here
MyFramework2 самостоятельно строит .
Попытка создать Приложение завершается ошибкой с ошибкой "Включить немодульный заголовок внутри фрейм-модуля" в строке, которая импортирует Mantle.h.
Эта проблема исчезает, если я импортирую Mantle.h в файл .m
, но я не могу этого сделать, потому что мой класс наследует от MTLModel
, который определен в Mantle.
Этот вопрос был адресован здесь, но он не зависит от Swift.
В предложениях есть (1) убедиться, что все пользовательские заголовки фреймов являются общедоступными. Они есть. И (2) перейдите в "Настройки сборки" под "Цель" и установите "Разрешить немодульные включения в Framework-модулях" на YES
.
Кто-нибудь знает, почему это происходит и как это исправить? Является ли настройка "Разрешить немодульное включение в структурные модули" на ДА считается хорошей практикой? Почему это ошибка?
Спасибо.