从框架伞标题中排除内部标题

Bre*_*don 5 macos objective-c clang swift

在尝试在框架中开始使用Swift(包括启用模块支持)时,我开始收到这样的消息:

[snip]/<module-includes>:1:1: Umbrella header for module 'PressKit' does not include header 'NPKBaseAppearance.h'
Run Code Online (Sandbox Code Playgroud)

有问题的标题(大约有十个)没有在PressKit.h中列出,但有充分的理由 - 它们包括内部或很少使用的类和类别,我不想向我的框架的大多数用户公开.(其中一些我想在选定的地方公开;其他人不应该暴露.)

将标题标记为私有似乎没有帮助.这是我框架项目中的一个警告,但是每个目标使用框架时出错,所以我不能忽略这个问题.

显然我可以将这些标题添加到我的伞标题中,但我不想这样做.在使用模块时,我是否违反了一些框架设计规则?处理这种情况的推荐方法是什么?

小智 1

不知道您是否已经自己解决了这个问题,但是您是否尝试在自定义 .modulemap 文件中排除您不想导出的标头?

看一下: Clang 3.7 文档 - 模块