如何在Swift框架中导入私有框架头文件?
我有一个Objective-C框架(框架A),公开和一些私人标题。 公共标题也在框架的标题中声明。 我有第二个与Objective-C框架链接的Swift框架(框架B)。
现在,如果我想在BI中import A
的公共头文件,只需要import A
。
但是,我怎么去导入私人头文件?
我知道桥头不是一个选项,因为这不支持框架。 我是否需要以某种方式为私有头创build一个单独的伞头?
您需要修改框架A
,以便导出私有模块。
-
在
A
工程中创build一个私有模块映射文件 。 这将是这样的:A / private.modulemap :
explicit module A.Private { // Here is the list of your private headers. header "Private1.h" header "Private2.h" export * }
-
在框架
A
目标的“Build Settings”中,search“Private Module Map File”行,并设置:$(SRCROOT)/A/private.modulemap
-
不要在“编译源代码”中包含
private.modulemap
文件。 这会导致不必要的警告。 -
清理和构build框架目标。
-
在框架B Swift文件。 你可以像这样导入私有模块:
import A import A.Private