目标未找到任何Umbrella头文件

4

在stackoverflow上有答案,但是它们都对我没有用。

这是一个Swift 2.0项目,我正在使用Xcode 7.2.1

重现问题的步骤:

  1. 创建一个单视图项目
  2. 进入项目导航器中的Targets
  3. 添加名为Common的框架模块
  4. 添加另一个名为Logger的框架模块
  5. 编译

你会看到一个警告。

警告:未找到目标“Logger”的umbrella header,将不会生成模块映射

请建议

测试项目链接 -> https://www.dropbox.com/s/cvgjls70ielnriy/Test.zip?dl=0


看一下这个,也许对你有帮助:https://dev59.com/SV0a5IYBdhLWcg3wHlek - Anbu.Karthik
这也没有解决,能否请您在您的环境中创建一个空项目(SingleView Application),包含两个目标(Frameworks),并编译一下呢? - user2727195
@Anbu.Karthik,我已经上传了一个测试项目,请你在你的端编译一下。https://www.dropbox.com/s/cvgjls70ielnriy/Test.zip?dl=0 - user2727195
这个回答解决了你的问题吗?Swift框架:伞头文件'[...].h'未找到 - pkamb
2个回答

5

因此,我学习了有关构建阶段的内容,并在Logger的标题下添加了logger.h到其公共接口中。

Xcode没有自动为第三个目标/模块添加任何头文件,这是一个bug还是我不知道,它确实为第二个目标添加了头文件。

我添加了另一个仅用于测试的目标,并包含了头文件,因此如果您添加第三个目标/模块(框架),则会出现此问题。

希望对某人有所帮助。


完全正确。根据您的指示,我们最终得到的是Common框架在其Build Phases头文件中同时包含_Common.h_和_Logger.h_,而Logger框架没有头文件。另一种看待这个问题的方式是:选择_Logger.h_并查看文件检查器中的目标成员资格:它是错误目标的成员。 - matt
这是一个非常出色的漏洞,您提供了精彩的重现指南。我希望您能向苹果提交一个漏洞报告。恭喜您做得很好。不幸的是,我只能为您点赞两次(一次是为问题,一次是为答案)。 :) - matt
谢谢你对此事的进一步解释,我也在想为什么logger.h被添加到了Common目标中。我已经提交了错误报告。 - user2727195
同时也感谢您通过文件检查器来解决这个问题。 - user2727195

4
我添加了另一个目标只是为了测试,并且包含了头文件,所以如果您添加第三个目标/模块(框架),就会出现这个问题。
实际上没有必要这样做。只需选择 Logger.h 并使用“文件检查器”即可:

enter image description here

如您所见,它的目标成员错误;它已经被添加到了公共目标中。只需取消勾选“公共”并勾选“记录器”。确保将弹出菜单设置为“公共”。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接