iOS中静态库.a以及.framework的制作
一、.a的制作
1.新建Cocoa Touch Static Library文件,自己命名
![](https://img.haomeiwen.com/i1772232/2ec4116ab99f6934.png)
2、删掉里面不必要的文件
![](http://upload-images.jianshu.io/upload_images/1772232-61d1fa3e7f3ab68b.png)
3、添加需要制作成静态库的代码
![](http://upload-images.jianshu.io/upload_images/1772232-29a0a46ea0ff0435.png)
4、在Build Phases里面的Copy Files里面添加头文件
![](http://upload-images.jianshu.io/upload_images/1772232-b737270e99d2d5b9.png)
5、分别在模拟器和iOS设备下编译,分别生成对应的.a文件,查看其存放的路径
![](http://upload-images.jianshu.io/upload_images/1772232-7fa4cc7d3e9b6d18.png)
6.根据路径找到对应的.a文件,整理一下,把.h和.a文件放在一个文件夹下面
![](http://upload-images.jianshu.io/upload_images/1772232-e4d1eda12b629cae.png)
7.在终端里面,将模拟器和iOS设备下分别生成的.a文件合并成一个通用的.a文件
![](http://upload-images.jianshu.io/upload_images/1772232-6267a71e5b8b22f7.png)
8.新建一个工程项目,将输出的.a文件和所有的.h文件添加到工程项目中
![](http://upload-images.jianshu.io/upload_images/1772232-e4c1b25427ce1230.png)
9.导入所需的.h文件,直接调用里面的方法即可
![](http://upload-images.jianshu.io/upload_images/1772232-39f636f3e44f8d39.png)
10.运行一下,看一下效果
![](http://upload-images.jianshu.io/upload_images/1772232-95e17e35018acf4d.png)
.framework的制作
1.新建Cocoa Touch Framework文件
![](http://upload-images.jianshu.io/upload_images/1772232-6a4311f98845d841.png)
2.将需要制作成静态库的代码添加到项目工程中
![](http://upload-images.jianshu.io/upload_images/1772232-3c61fb17f5cd7771.png)
3.在MyFramework.h文件中添加所有代码的头文件
![](http://upload-images.jianshu.io/upload_images/1772232-298e0c68ca1c14f8.png)
4.在Build Settings中,搜索link,将Mach-O Type后面的内容改为Static Library
![](http://upload-images.jianshu.io/upload_images/1772232-f80880caf6aa6b0e.png)
5.在Build Phases中,把Headers里面Project里面的头文件拖到Public中
![](http://upload-images.jianshu.io/upload_images/1772232-29c8da9958675da6.png)
6.分别在模拟器和真机下面运行,分别生成对应的.framework文件
![](http://upload-images.jianshu.io/upload_images/1772232-62ac7b2c91d8d74a.png)
7.在终端里面,把生成的两个.framework文件合并成一个
![](http://upload-images.jianshu.io/upload_images/1772232-b093e6f0c686994a.png)
8.替换其中(模拟器和真机生成的MyFramework.framework)任意一个中的MyFramework二进制文件为通用的MyFramework二进制文件
![](http://upload-images.jianshu.io/upload_images/1772232-bcbcce1c172e2d02.png)
9.新建一个工程项目,将通用的MyFramework.framework添加到工程中
![](http://upload-images.jianshu.io/upload_images/1772232-3e94e59f18aba2ae.png)
10.导入静态库头文件,在下面的代码里面调用静态库里面的方法
![](http://upload-images.jianshu.io/upload_images/1772232-2a8cb424061ee309.png)
11.分别在模拟器和真机下面运行,看看效果
![](http://upload-images.jianshu.io/upload_images/1772232-9458de0ab29a30ff.png)
后记:在静态库中,人们只能看到代码的头文件,而看不到其具体实现过程,增加了代码的保密性和安全性。