封装静态库的原因:有时候,我们出于某些原因,并不想让其他人看到我们代码的具体实现方式,比如公司封装SDK的时候,那么此时我们就要封装静态库了。静态库的方式有两种,
.framework
和.a
纯二进制。但对于模块化操作来说,.framework
更具有优势。因为.framework
=.a
+ 头文件 + 其他。
一、我们这里选择Cocoa Touch Framework
,来封装.framework
![](https://img.haomeiwen.com/i2028539/772a86be064425b2.png)
二、删除系统为我们自动生成的头文件,如下图所示。
![](https://img.haomeiwen.com/i2028539/2122fbf86a988eaa.png)
三、由于我们需要静态库支持所有机型,所以要把Build Active Architecture Only
设为No。
![](https://img.haomeiwen.com/i2028539/fcf50e246f4b954b.png)
四、将Mach-O Type改为Static Library
![](https://img.haomeiwen.com/i2028539/91249162537c0216.png)
五、将需要在工程里可能用到的文件暴露出来,如图所示。
![](https://img.haomeiwen.com/i2028539/db320cead2532e79.png)
六、为了方便使用,我们把所有的头文件集合到一个文件里。
![](https://img.haomeiwen.com/i2028539/093530a5778936cf.png)
七、将Build Config职位Release
![](https://img.haomeiwen.com/i2028539/27891ab8ac93c4c8.png)
八、我们分别在模拟器和真机的环境下编译一遍,并将真机和模拟器下的文件合并,如下图所示。将合并后的静态库替换真机/模拟器状态下的任一静态库就可以了。
![](https://img.haomeiwen.com/i2028539/7a7700d06ab4031b.png)
![](https://img.haomeiwen.com/i2028539/2fd898d0789c0e60.png)
![](https://img.haomeiwen.com/i2028539/c3141ee5dc0bf03d.png)
网友评论