I can believe fly.

Tuesday, May 23, 2017

iOS 静态库/动态库/ Framework


静态库

静态库即静态链接库,Windows 下的 .lib,Linux 和 Mac 下的 .a。
静态库的代码在编译过程中就被载入目标程序,因此目标程序的体积会比较大。
iOS静态库形式:.a和.framework(我们自己建立的)。

动态库

动态库即动态链接库,Windows 下的 .dll,Linux 下的 .so,Mac 下的 .dylib/.tbd。
动态库编译时只是引用,是在程序运行时候才加载的,因此不影响目标程序的体积。
iOS动态库形式:.dylib和.framework(属于系统的)。

iOS Framework
framework实际上是一种打包方式,将库的二进制文件,头文件和有关资源文件打包一起。
在iOS8之前,iOS平台不支持使用动态Framework; iOS8/Xcode 6推出后,才添加了动态库的支持,同时Xcode6也原生自带了Framework支持(动态和静态都可以)。

 CocoaPods支持
纯ObjC里,多数都是使用静态库.a来集成。建立private repo,  提供podspec配置


如果想集成Framework,podspec使用s.vendored_frameworks配置


对于 Swift 项目,CocoaPods 提供了动态 Framework 的支持,在podfile里要使用use_frameworks!


参考资讯





No comments: