1、需求
我们在开发iOS的工作中可能会自己开发一些.a静态库或者打包一下别人的第三方类库包装成自己的.a文件。有时候我们引入一些C++编译的第三方文件时可能会出现编译的错误,但是我们如果打包成.a静态库时就很少会出现OC与C++混编的错误,原因很简单.a静态库文件是编译好的二进制文件,二进制文件与二进制文件互相混编当然没有什么问题。好那么接下来我们开始学习打包吧!
2、实例
接下来我们就以打包IOS开发中常用的网络请求库AFNetworking为实例。
1>我们需要准备好需要打包的AFNetworking
![](https://i-blog.csdnimg.cn/blog_migrate/339fd77424235ef1394b25dc6ed76885.webp?x-image-process=image/format,png)
![](https://i-blog.csdnimg.cn/blog_migrate/b665e4680f284de47fa9db2afc7a7f31.webp?x-image-process=image/format,png)
2>接下来我们开始新建一个工程文件取名WBAFNetWorking
![](https://i-blog.csdnimg.cn/blog_migrate/9e49cd9d4a0c8775713b35ffd41a988c.webp?x-image-process=image/format,png)
![](https://i-blog.csdnimg.cn/blog_migrate/1a374baf4d1b87de235c70d8b6a9b02c.webp?x-image-process=image/format,png)
3>接下来我们把准备好的AFNetworking拖入工程中,注意文件放在一级目录下。
![](https://i-blog.csdnimg.cn/blog_migrate/da58097f50642b747af5d6121e0bc13f.webp?x-image-process=image/format,png)
4>接下来我们选择出来需要暴露出来的头文件
![](https://i-blog.csdnimg.cn/blog_migrate/9f0d461cf0d7d416ed0aba4b07597d97.webp?x-image-process=image/format,png)
我选择暴露出所有的头文件如下图
![](https://i-blog.csdnimg.cn/blog_migrate/2644cedcbcffa196f0fea4f66c57c5c3.webp?x-image-process=image/format,png)
5>接下来我们配置下工程文件
![](https://i-blog.csdnimg.cn/blog_migrate/60e0c75283e1063d665c75f847b2bf0d.webp?x-image-process=image/format,png)
![](https://i-blog.csdnimg.cn/blog_migrate/8745b9b0889e29ef4d1c7c60a5eb0437.webp?x-image-process=image/format,png)
6>配置完之后我们就可以选择真机进行运行在运行后我们找到生成的.a文件右键选择show in finder就可以了。
![](https://i-blog.csdnimg.cn/blog_migrate/c14a81b0810d05cc0ed2966e449ec20e.webp?x-image-process=image/format,png)
![](https://i-blog.csdnimg.cn/blog_migrate/e6f737d393699c41ecad59abb186e955.webp?x-image-process=image/format,png)
7.此时生成的.a文件只适用于真机,如果我们需要模拟器可以使用的.a文件用同样的方法在模拟器上运行下就可以了,而且网上有很多教程可以合并两个.a文件在这里就不进行重述了。
原文链接:http://www.jianshu.com/p/e25e4b391a68