swift framework 使用 OC 代码
2022-04-25 本文已影响0人
尼古拉斯超仔
swift 在工程中可以通过桥接文件使用OC代码,但是在framework中是不支持使用桥接文件的,下面是是swift framework 使用 OC 代码的两种方式。
第一种:在target->Build Phases->Headers中,将引入的oc文件由project移动到public中,再在公共.h文件中引入即可使用。
第二种:第一种方法的swiftframework会暴露oc的头文件,如果你的Objective-C文件和接口并不想暴露可以采用modulemap。
1. 新建一个module.modulemap文件:创建一个.h文件修改名字和后缀即可。

module WFAVEngineKit {
header "./Pods/GOWFAVEngineKit/GOWFAVEngineKit/Frameworks/WFAVEngineKit.framework/Headers/WFAVEngineKit.h" export *
}

注意:这里的路径是要使用的OC代码相对于modulemap文件的路径
(../上一级目录,./当前目录,/根目录)
2.设置module.modulemap引用路径,在build settings中搜索import paths,输入找到module.modulemap 的文件路径。


我的这个module.modulemap文件是在根路径下,直接输入即可。
3.swift在需要调用OC代码的地方直接import module名字
