@import导致解析问题:“无法构建模块”

时间:2015-04-14 06:43:02

标签: xcode xcode6.3

使用Xcode 6.3更新后,我发现我的项目有些奇怪的东西。

下面的代码会导致解析问题,即#34;无法构建模块' AgendaFramework'""""""""""" 

@import MyEmbededFramework;

错误标记如下所示:

error

在编制索引时未提出问题。整个建筑可以成功执行,没有任何错误或警告。我可以构建,存档,在设备上运行,部署,提交到App Store。

但是,当我编辑属于扩展名的类时,会显示错误标记。扩展(小部件)显式链接到嵌入式框架。 (我知道当我使用@import语句时,我不必这样做。)

在这种状态下,我无法收到任何有效的内容助理,非常烦人。

用旧样式替换import语句后,问题就消失了:

#import <AgendaFramework/AgendaFramework.h>

我还有其他几个与项目具有非常相似的拓扑结构的项目导致了这个问题,但它们没问题。只有一个项目会导致此问题。我比较了每个细节构建设置,我找不到任何线索。

我试过了:

  • 删除衍生数据
  • 全面清洁
  • 重新启动

欢迎任何线索。谢谢!

8 个答案:

答案 0 :(得分:31)

看起来像是开启:  允许在框架模块中使用非模块化包含为我解决了这个问题。

答案 1 :(得分:2)

有时这个问题可以通过将框架添加到与.xcodeproj文件相同的文件夹,没有子文件夹或任何内容来解决。

向Jonny致信,他将此作为评论中的评论。

答案 2 :(得分:1)

对我有用的解决方案:在系统样式导入的框架头文件方向上的勤奋......就像#import <CoreXLib/CoreThreads.h>故事一样:

在我的情况下,我构建的框架来自几个代码库的组合,因为很明显我可以通过Framework与脆弱的Xcode项目路径名重用代码缓存器中的一些通用设计模式。

当我构建我的框架“CoreXLib”时,我将其重组为Xcode的典型Cocoa框架。我改变了我的导入:

    #import "CoreTypeAliases.h"    // project local style   

    #import <CoreXLib/CoreTypeAliases.h>    // system or framework style

适当。使用包含lego文件夹中的公共头文件的CoreXLib.framework的几个项目有效...所以我觉得我很高兴...

不幸的是,一些公开的标题没有完全更新。框架中的类在本地风格中构建得很好。使用它的所有项目都达到了这一点,然后我遇到了一个没有......并且@jeeeyul注意到的错误

所以在找到这个帖子并找到@kwz的解决方案后,并没有在我的情况下做任何事情,我决定在我试图解决这个问题的同时完善代码。在抛光中,我发现一些#imports没有像Xcode搜索中那样改变并取而代之。一些手干的时间......

在我的CoreXLib项目标题的所有中修复所有的所有之后(不仅仅是公共标题,自卫),我再次回到问题中......我将新编译的CoreXLib.framework转移到嵌入它的错误项目中......问题已经消失了!我检查了框架项目中的Allow Non-modular Includes...和链接框架的项目,两者都是“否”。将两者翻到“是”和“否”在几个测试中没有区别。 其他更改是#import "..."#import <CoreXLib/...>次修改。

因此,有时抛光苹果会破坏苹果......

答案 3 :(得分:1)

嗨,这是由于您在框架头中公开的文件也必须是公共的。

Change from "project" to "public"

答案 4 :(得分:0)

今天我通过以下步骤解决了这个问题:

  1. 选择架构“MyEmbededFramework”
  2. 按[Command + B]构建
  3. 从构建阶段面板中,将“MyEmbededFramework.framework”添加到Link Binary With Libraries
  4. 尝试构建项目,问题现在可能会消失。

答案 5 :(得分:0)

你可以试试这个,这对我有用。删除有关项目的DerivedData目录。step by step

答案 6 :(得分:0)

在构建设置的Build Active Architecture Only中设置YES。 它对我有用。

enter image description here

答案 7 :(得分:-10)

在构建设置中关闭模块。这可能有用