我有一个iOS应用程序,包括一个应用程序,一堆我的自定义框架,以及一堆第三方framweorks:
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自行构建 。
尝试构建 App 失败,并在导入Mantle.h 的行中出现“在框架模块中包含非模块化标头”。
如果我在.m
文件中导入Mantle.h,这个问题就消失了,但我不能这样做,因为我的类继承自Mantle中定义的MTLModel
。
这个问题已经解决here,但它不是特定于Swift的。
建议有(1)确保所有自定义框架标头都是公共的。他们是。 (2)转到“目标”下的“构建设置”,并将“允许框架模块中的非模块化包含”设置为YES
。
有谁知道为什么会发生这种情况以及如何解决这个问题?将“允许非模块化包含在框架模块中”设置为“YES”是否为良好做法?为什么这是一个错误?
感谢。