Swift静态库合并 - ShenYj/ShenYj.github.io GitHub Wiki
Swift 静态库 mach-o 文件的合并与 OC的静态库合并没有区别,本质上还是 .o
和合集
通过 ar
、 libtool
手动处理合并即可
libtool
合并有一点好处,如果存在重复.o
不会覆盖,而ar
会覆盖, 并且libtool
会有提示信息
-
比如
A.framework
与B.framework
中都存在一个class Person
的定义使用
libtool
进行合并, 最终的.a
中会存在两个Person.o
这个可以通过管理头文件于不同的路径, 结合
Module
选择导入的方式来使用
默认编译时采取的是-noall_load
,因此也不会影响到编译
重点在于: Swift 为管理头文件而生成的 .swiftmodule
文件
编译器会根据
.modulemap
来匹配库文件与头文件的关系, 因此只需要保证编译器能正确找到.modulemap
文件即可,而且要考虑 Swift 和 OC 使用不同的编译器
参考: OC工程中使用Swift静态库