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静态库