我有一个带有项目层次结构的工作区设置,我们将它们称为“ A”,“ B”和“ C”。
项目'C'是一个编译为静态库的C ++项目-在这里没有问题。
项目'B'是一个混合的Swift / Obj-C框架,将项目'C'作为依赖项进行链接。这样可以正常工作,并且框架可以自行编译。
现在的问题是: 项目“ A”是一个iOS项目,在其“构建阶段”中包含“ B”作为链接的二进制库。当我尝试编译'A'时,我从项目'B'中的Obj-C桥接标头中收到构建错误,提示找不到标头。
看来,当我从“ A”中选择目标时,正在使用项目“ A”中的构建设置来构建项目“ B”中的框架。好的。我尝试将'B的目录添加为User Header Search Path
。当我这样做并尝试构建'A'时,我得到关于在import B
的'A'中的类中作为B的一部分编译的类的重复定义的错误,并且重复的定义源自所包含的标头在“ B的Obj-C桥接头”中。
我将框架中的标头配置为复制到框架的Public
标头中。如果我将它们从Public
移回到Project
,并且在'A'的User Header Search Path
中包含'B's头,那么我就不会遇到这个问题。
我确定我只是缺少某些配置,但我不知道它是什么。
我如何在与主应用程序相同的工作空间中将项目构建为框架,并将其作为独立的,自包含的(包含标题等)依赖项包含在我的主iOS应用程序中?