У меня есть приложение для 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) перейдите к параметрам сборки в разделе «Цель» и установите для параметра «Разрешить немодульные включения в модули платформы» значение YES
.
Кто-нибудь знает, почему так происходит и как это исправить? Считается ли хорошей практикой установка «Разрешить немодульные включения в модули фреймворка» на ДА? Почему это ошибка?
Спасибо.