Xcode 找不到 header 文件

Xcode can't find header file

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

将这个框架添加到我的项目中

当我想要导入包含在我的框架中的 header 文件时,我收到 .h 文件未找到 错误。我正在尝试做的事情可能吗?还是我遗漏了什么?

我创建了这样的框架;

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

我打开了我的项目并添加了框架 Build Phases>Link Binary With Libraries。我可以导入 header 框架文件,例如 #import <myframework/framework.h> 在此之后,我还添加了框架 General>Embedded Binaries。一切看起来都很正常,但我无法将 headers 添加到我的项目中,我使用 header 搜索路径将其包含在我的框架中。我必须使用 header 搜索路径,因为有很多 header,我无法将它们全部添加到我的 Xcode.

确保所有 Public Header 出现在 Public 部分,否则将 .h 文件拖放到 public

Everything look normal but i cannot add headers to my project which i included to my framework with header search path.

听起来好像您希望在您的 header 搜索路径指定的路径中找到的所有 header 都将成为您的框架的一部分,因此如果有header 在您的搜索路径中命名为 SomeHeader.h,它将内置到您的框架中,您将能够将其导入到客户端项目中,例如:

#import <MyFramework/SomeHeader.h>

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

There is a lot of headers in another path. I have to use header search path unfortunately. Kind of company rule.

听起来贵公司的所有项目都指定了相同的 header 搜索路径,以便它们可以访问这些 header 文件。如果那是真的,那么项目就没有理由需要 #import 从您的框架中提取它们,但在那种情况下并不清楚实际问题是什么。或者,也许您正在创建框架,以便客户端项目可以从您的框架中获取 header,而不必引用 header 搜索路径。在这种情况下,您需要将这些 header 添加到项目中并按上述方式指定它们。