iOS制作.a静态库
1、需求
我们在开发iOS的工作中可能会自己开发一些.a静态库或者打包一下别人的第三方类库包装成自己的.a文件。有时候我们引入一些C++编译的第三方文件时可能会出现编译的错误,但是我们如果打包成.a静态库时就很少会出现OC与C++混编的错误,原因很简单.a静态库文件是编译好的二进制文件,二进制文件与二进制文件互相混编当然没有什么问题。好那么接下来我们开始学习打包吧!
2、实例
接下来就以我项目中使用第三方登录的SDK打成静态库为实例。
1>我们需要准备好需要打包的文件
2>接下来我们开始新建一个工程文件取名KSLogin
3>接下来我们把准备好的AFNetworking拖入工程中,注意文件放在一级目录下。
4>接下来我们选择出来需要暴露出来的头文件
5>接下来我们配置下工程文件
6>配置完之后我们就可以选择真机进行运行在运行后我们找到生成的.a文件右键选择show in finder就可以了。
7.此时生成的.a文件只适用于真机,如果我们需要模拟器可以使用的.a文件用同样的方法在模拟器上运行下就可以了,而且网上有很多教程可以合并两个.a文件在这里就不进行重述了。
注意点:
如果打的静态库需要引入系统的库文件,比如当前的项目引入了libxml2.2.dylib,而系统库中只存在libxml2.2.tbd,操作如下:
先引入该库:选中可以看到文件信息
通过上面的路径/usr/lib/libxml2.2.dylib,点击add other
然后shift + command + G,输入地址:
选中libxml2.2.dylib open 导入即可
如何合并静态库文件:展示.a文件支持的架构 lipo -info .a文件
合并:lipo -create xxx.a yyy.a -output zzz.a
以上文档参考来源:.a静态库制作参考资料