Xcode找不到头文件

时间:2015-11-13 11:27:09

标签: ios objective-c xcode frameworks

我正在尝试为我的项目制作一个框架。在我的框架中,我将头文件的路径添加到 target> Build Settings> header-search path 。之后,我通过 Build Phases> Link Binary With Libraries 将此框架添加到我的项目中。

当我想导入我在框架中包含的头文件时,我收到 .h文件未找到错误。我正在尝试做什么?或者我错过了什么?

我创建了这样的框架;

以iOS> Framework& Library> Cocoa Touch Framework打开新项目 我没有添加任何类,我只是添加了头搜索路径和库搜索路径和链接器标志。我不认为我在这部分中犯了一个错误,因为我们在每个项目中都这样做,但是第一次为框架做这个。然后我按下run并从Products中获取我的框架。

我打开了我的项目并添加了框架Build Phases&gt; Link Binary With Libraries。我可以导入像#import <myframework/framework.h>这样的框架的头文件 在此之后,我添加了一般框架&gt;嵌入式二进制文件。一切看起来都很正常,但我不能将标题添加到我的项目中,我将其包含在带有标题搜索路径的框架中。我必须使用标题搜索路径,因为有大量的标题,我不能将它们全部添加到我的Xcode。

2 个答案:

答案 0 :(得分:22)

确保所有Public Header出现在Public Section中,否则将.h文件拖放到public enter image description here

答案 1 :(得分:3)

  

一切看起来都很正常,但我无法在我的项目中添加标题,我将其包含在带有标题搜索路径的框架中。

听起来好像您期望在标题搜索路径指定的路径中找到的所有标题都将成为您框架的一部分,因此如果有一个标题为{{1}的标题在您的搜索路径中,它将构建到您的框架中,您将能够将其导入到客户端项目中,如:

SomeHeader.h

但事实并非如此。如果您希望框架提供#import <MyFramework/SomeHeader.h> ,则需要将该文件添加到项目中,正如Meghs Dhameliya已经指出的那样,您需要在Headers构建阶段的Public Headers部分指定SomeHeader.h 。这将使Xcode将头文件复制到框架中,以便框架的客户端可以导入头文件。不清楚这是你真正想要的,不过......在你写的评论中:

  

另一条路径中有很多标题。不幸的是,我必须使用标题搜索路径。公司规则的种类。

因此,听起来贵公司的所有项目都指定了相同的标题搜索路径,以便他们可以访问这些标头文件。如果这是真的,那么项目没有理由需要SomeHeader.h来自您的框架,但在这种情况下,它不清楚实际问题是什么。或者,您可能正在创建框架,以便客户端项目可以从您的框架获取标头,而不必引用标头搜索路径。在这种情况下,您需要将这些标题添加到项目中,并按上述说明进行指定。