Skip to content

Swift静态库合并

ShenYj edited this page Feb 22, 2022 · 1 revision

Swift静态库合并

Swift 静态库 mach-o 文件的合并与 OC的静态库合并没有区别,本质上还是 .o 和合集

通过 arlibtool 手动处理合并即可

libtool合并有一点好处,如果存在重复 .o不会覆盖,而 ar 会覆盖, 并且 libtool 会有提示信息

  • 比如 A.frameworkB.framework 中都存在一个 class Person 的定义

    使用 libtool 进行合并, 最终的 .a中会存在两个 Person.o

    这个可以通过管理头文件于不同的路径, 结合 Module选择导入的方式来使用
    默认编译时采取的是-noall_load,因此也不会影响到编译

重点在于: Swift 为管理头文件而生成的 .swiftmodule 文件

编译器会根据 .modulemap 来匹配库文件与头文件的关系, 因此只需要保证编译器能正确找到 .modulemap 文件即可,而且要考虑 Swift 和 OC 使用不同的编译器

参考: OC工程中使用Swift静态库

Getting Started

Social

Clone this wiki locally