我有一个XCode (Swift)
使用静态库(Swift)的项目,并且该库使用另一个静态库(C++)
静态库 A (C++) -> 静态库 B (Swift) -> MyProject (Swift)
为了能够在库A
中使用库中的方法B
,我需要将文件设置bridge
为 BuildSettings
,对吗?然后我可以使用A
in 中的任何方法B
,好吧。
如果我尝试使用 构建库B
,Build libraries for distribution = NO
一切都可以编译并正常工作,但如果我需要将此值更改为 YES
(将库构建为 Release ver),则会出现错误
错误:不支持将桥接头与模块接口一起使用
我在 SO 上搜索并找到了几种可能的解决方案,其中大多数建议设置Build libraries for distribution = NO
,但这更像是一个拐杖,因为为了在发布中构建一个库,您需要将值设置为YES
.
然后我找到了另一个解决方案
https://developer.apple.com/forums/thread/10419
但这里解释说
您需要从您在构建设置中添加它的位置删除桥接头,以便编译您的框架。
但是我无法删除该文件bridge
,因为那样我将无法使用 from А
to的方法В
。
怎么做才对?
总的来说,最后我是通过
modulemap
文件完成的我删除了到桥文件的链接(在构建设置中)并为
.h
.h
放在文件旁边现在,在使用某些文件中的方法之前,我需要编写
import LibA
然后方法可用并且不会出现桥文件的问题感谢@kun wang 的回答 https://stackoverflow.com/a/68980854/5709159