XCode6:接收错误"在框架模块中包含非模块化头"

bca*_*tle 14 xcode clang ios-frameworks xcode6

我有一个iOS应用程序,包括一个应用程序,一堆我的自定义框架,以及一堆第三方framweorks:

App
    MyFramework1
    MyFramework2
        AFNetworking.framework
        Mantle.framework
        ..
Run Code Online (Sandbox Code Playgroud)

我得到错误"在框架模块中包含非模块化头",具有以下结构:

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

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

MyClass.h
#import <Mantle/Mantle.h>        <-- Error happens here
Run Code Online (Sandbox Code Playgroud)

MyFramework2建立本身.

尝试构建应用程序失败,并在导入Mantle.h的行中出现 " 框架模块中包含非模块化头文件" 错误.

如果我在.m文件中导入Mantle.h,这个问题就消失了,但我不能这样做,因为我的类继承自MTLModelMantle中定义的.

此问题已在此处解决,但它不是特定于Swift的.

建议有(1)确保所有自定义框架标题都是公共的.他们是.(2)转到"目标"下的"构建设置",并设置"允许框架模块中的非模块化包含" YES.

有谁知道为什么会这样,以及如何解决它?将"允许非模块化包含在框架模块中"设置为"YES"是否为良好做法?为什么这是一个错误?

谢谢.

Nik*_* M. 15

在项目导航器中选择.h文件.在右侧的目标成员资格区域中,目标旁边有一个下拉菜单.在那里选择"public"(现在可能选择"project").

在此输入图像描述

  • @Nikos M.你可以加一个截图.我看不到下拉菜单.请帮忙.非常感谢 (2认同)
  • @NikosM.谢谢,但它不适合我,因为头文件是通过cocoapods安装的 (2认同)