【发布时间】:2015-04-17 14:49:18
【问题描述】:
我有一个 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 自行构建。
尝试构建 App 失败,并在导入 Mantle.h 的行出现错误“Include of non-modular header inside framework module”。
如果我在 .m 文件中导入 Mantle.h,这个问题就会消失,但我不能这样做,因为我的类继承自在 Mantle 中定义的 MTLModel。
here 已解决此问题,但它不是 Swift 特有的。
建议 (1) 确保所有自定义框架标题都是公开的。他们是。 (2) 进入“Target”下的Build Settings,将“Allow Non-modular Includes in Framework Modules”设置为YES。
有谁知道为什么会发生这种情况以及如何解决它?将“允许框架模块中的非模块化包含”设置为“是”是否被认为是一种好习惯?为什么这是一个错误?
谢谢。
【问题讨论】:
标签: xcode xcode6 clang ios-frameworks