我正在开发一个Swift动态框架,其中包含一些Objective-C代码。我需要使用一些传统的Objective-C代码,而不会将代码暴露给它。我开始知道我可以使用模块映射来避免在框架中将标题添加为公共标题。我一直在使用this链接来了解如何创建模块映射。我创建的模块映射看起来像这样。
framework module Xyz {
umbrella header "Xyz.h"
export *
module * { export * }
}
framework module Module1{
header "Module1.h"
}
framework module Module2{
header "Module2.h"
}
.... Rest of the modules
在此之后,我尝试在Swift文件中导入模块,但是我没有自动完成。我还是编写了模块名称并尝试构建它。我在Swift文件中收到错误,说“无法构建Objective-C模块”。在模块映射文件中,我看到错误为“无法找到标题”。这是错误
所以我尝试将路径$(SRCROOT)/ProjectName/
添加到构建设置的Include Path
。之后它无法找到伞头。
我搜索了StackOverflow和Google的大部分内容,但我找不到任何对我有帮助的东西。这是我第一次使用模块地图,我被困在这里不知道该怎么做才能解决这个问题。如果有人可以指出我错过了什么,或者你是否可以建议一些可以帮助我的其他来源,那将会很棒。谢谢!