像工作中使用的第三方SDK基本上都是闭源的,因为公司不能把自己的机密泄露出去。所以当需要给别人提供SDK但不让他们知道代码的实现时就需要封装成静态库。
静态库有 .a
库和 .framework
库,苹果官方更建议我们使用 .framework
库,因为其更加强大。
.a是一个纯二进制文件,.framework中除了有二进制文件之外还有资源文件。
.a文件不能直接使用,至少要有.h文件配合,.framework文件可以直接使用。
.a + .h + sourceFile = .framework。
步骤
参考这篇博客: iOS开发——创建你自己的Framework 讲解的非常详细。
总结一下步骤:
- 创建工程,最好是起名为xxxDemo例如AXKitDemo,然后新建一个target名为AXKit,并把原来的工程改名为AXKit。(为了方便在demo中调试静态库)
- 新建一个target,选择类型为framework。
- 在framework中创建需要封装的类,写好代码。
- 在
Build Setting
里更改参数,Math-O Type
为Static Library
。 - 在
Build Phases -> Headers
里将需要暴露出来的头文件从Project
移动到Public
。 - 添加一个
Aggregate
的target,并添加运行脚本。目的是把编译出来的真机版和模拟器版的framework合并。 - 模拟器编译一下,真机编译一下,然后
Aggregate
编译一下,然后在项目的Products
文件夹里就有了最终生成的静态库。
Aggregate
的Run Script脚本:
if [ "${ACTION}" = "build" ] |