iOS制作.a静态库

1、需求

     我们在开发iOS的工作中可能会自己开发一些.a静态库或者打包一下别人的第三方类库包装成自己的.a文件。有时候我们引入一些C++编译的第三方文件时可能会出现编译的错误,但是我们如果打包成.a静态库时就很少会出现OC与C++混编的错误,原因很简单.a静态库文件是编译好的二进制文件,二进制文件与二进制文件互相混编当然没有什么问题。好那么接下来我们开始学习打包吧!

2、实例

 接下来就以我项目中使用第三方登录的SDK打成静态库为实例。

 1>我们需要准备好需要打包的文件


iOS制作.a静态库_第1张图片
iOS制作.a静态库_第2张图片


2>接下来我们开始新建一个工程文件取名KSLogin


3>接下来我们把准备好的AFNetworking拖入工程中,注意文件放在一级目录下。


iOS制作.a静态库_第3张图片

4>接下来我们选择出来需要暴露出来的头文件


iOS制作.a静态库_第4张图片


5>接下来我们配置下工程文件


iOS制作.a静态库_第5张图片


iOS制作.a静态库_第6张图片

6>配置完之后我们就可以选择真机进行运行在运行后我们找到生成的.a文件右键选择show in finder就可以了。


iOS制作.a静态库_第7张图片

7.此时生成的.a文件只适用于真机,如果我们需要模拟器可以使用的.a文件用同样的方法在模拟器上运行下就可以了,而且网上有很多教程可以合并两个.a文件在这里就不进行重述了。

注意点:

如果打的静态库需要引入系统的库文件,比如当前的项目引入了libxml2.2.dylib,而系统库中只存在libxml2.2.tbd,操作如下:

先引入该库:选中可以看到文件信息


iOS制作.a静态库_第8张图片

通过上面的路径/usr/lib/libxml2.2.dylib,点击add other

iOS制作.a静态库_第9张图片

然后shift + command + G,输入地址:


iOS制作.a静态库_第10张图片


选中libxml2.2.dylib  open 导入即可

如何合并静态库文件:展示.a文件支持的架构    lipo -info .a文件

合并:lipo -create xxx.a yyy.a -output zzz.a

以上文档参考来源:.a静态库制作参考资料

armv7,armv7s,arm64,i386,x86_64处理器架构理解

你可能感兴趣的:(iOS制作.a静态库)