下面的内容, 很多只需要了解或者理解就可以.
除非将来自己需要封装SDK, 打包pod, 才需要回顾这里的内容
1. 分类
静态库: .a 和 .framework
动态库: .tbd(Xcode7以前.dylib) 和 .framework
2. 为什么要提供库
- 涉及商业核心价值的东西, 希望外界用, 但是不给看. (高德地图, 极光推送, 友盟分享)
- 早期MRC项目, 如果用到ARC项目中, 需要不断的添加编译参数. 很麻烦. 如果转换成静态库(就会变成二进制文件, 忽略MRC等等) 例子: RegexKitLite(MRC), 打包成库可以直接使用
- 成熟公司, 模块相对稳定成熟且独立. 封装成库. 这样别人直接导入使用就可以. (方便多个项目使用, 保护源码不被修改, 保护源码不被泄露)
3. 开发库能干什么
- 中大型公司, 需要对模块源码封装/组件式开发.
- 专门提供SDK的公司, 需要封装静态库/动态库/提供pod库 (百度地图)
- 将来你自己封装了一套牛逼的框架, 不希望别人看见实现文件, 也需要封装成静态库/动态库/提供pod库