首先介绍一下我的需求,我想要打包出来的.framework其中包含了另外2家的.framework各种有bundle,其中有一个家还是oc和swift混编的,因为这个事,搞了挺久,也查了很多资料,大多资料只是部分符合我的需求,所以记录下来以便让和我有一样需求的小伙伴不要被领导搞得焦头烂额。好,废话不多说,下面开始。
其中我的前期找资料的难点在于,我的是oc和swift混编,那么我们经过查资料可得
标题为:OC与swift相互调用
https://www.cnblogs.com/baitongtong/p/6927357.html
对于文章中oc调用swift部分,swift的函数前面还需要加上@objc才能被调用,以上文章是写于17年,以前苹果是隐性加上@objc的,后来为了效率,就去掉了,听说效率提升了3-5%?具体数值忘了,但是这是苹果改进的一部分吧。
oc通过xxx-swift.h调用swift。swift通过xxx-Bridging-Header.h调用oc。创建oc项目,xcode不会自动创建桥接文件。需要先创建xxx-Bridging-Header.h,才会生成xxx-swift.h文件。这句话很重要,如果不创建桥接文件,那么会提示 添加好 头文件之后 调用的时候,Bad receiver type XXX,这时候,需要手动创建桥接文件,
https://www.jianshu.com/p/94903854daf3 这里有,手动创建桥接文件的介绍,
创建好文件,就build setting 里面 swift compiler -General Objective-c Bridging Header 拖入即可。