iOS 打包静态库.a文件

来源:互联网 发布:java能干嘛 编辑:程序博客网 时间:2024/04/29 18:47

制作.a

1、新建项目 –> Cocoa Touch Static Library
这里写图片描述

2、添加库需要包含的代码
这里写图片描述

3、将需要暴露的.h文件暴露出来,.m会自动编译到.a文件中
这里写图片描述

4、分别选择真机设备和模拟器,command + B编译,staticTest会从红色变成黑色。真机和模拟器环境下用的.a文件是分开的。
这里写图片描述

5、在“Show in Finder ”,可以看到编译生成的.a 和 暴露的.h文件。
这里写图片描述
这里写图片描述


Note:
- Debug-iphoneos 文件夹里面的东西是用在真机上的
- Debug-iphonesimulator 文件夹里面的东西是用在模拟器上的
- 如果 Scheme 是 Release 模式,生成的文件夹就以 Release 开头
调试版本 VS 发布版本
- 调试版本会包含完整的符号信息,以方便调试
- 调试版本不会对代码进行优化
- 发布版本不会包含完整的符号信息
- 发布版本的执行代码是进行过优化的
- 发布版本的大小会比调试版本的略小
- 在执行速度方面,发布版本会更快些,但不意味着会有显著的提升


当我们需要打包的.a文件里面用到了图片等资源文件。此时我们不该直接把resource文件夹拖进项目,而是建立.bundle文件,然后把图片等资源放进.bundle里面管理。
这里写图片描述
这里写图片描述
在其他项目中使用我们打包的.a文件时,只需要将.a文件和暴露的.h文件以及资源文件.bundle(有Xib时还需要拖Xib)拖进新项目即可使用。


  1. 如果想要使打包好的.a文件能同时在模拟器和真机上使用,需要将两个.a文件进行合并。在终端输入指令:
lipo -create ~/Debug-iphoneos/libstaticTest.a ~/Debug-iphonesimulator/libstaticTest.a -output ~/libstaticTest.a

即: lipo -create + 真机.a文件路径 + 模拟器.a文件路径 + -output + 合成.a文件的路径
PS:可以通过 lipo -info .a文件路径 指令查看.a的类型


调试.a

1、创建一个application工程,可以正常运行。
这里写图片描述

2、此时我们需要在这个工程里添加静态库进行调试,点击targets下面的+号,添加libriary
这里写图片描述
3、此时在工程里面会出现静态库的文件夹,在此文件夹下面添加需要打包静态库的代码即可。
这里写图片描述

4、使用静态库,只需要将需要暴露的头文件引入project的类里。同时需要配置targets -> build Phases 下的Target Dependencies 和Link Binary With Libraries 添加我们创建的静态库.a。
这里写图片描述

5、打包静态库只需要选中静态库编译即可。具体打包方法同上。
这里写图片描述

1 0
原创粉丝点击