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)拖进新项目即可使用。
如果想要使打包好的.a文件能同时在模拟器和真机上使用,需要将两个.a文件进行合并。在终端输入指令:
lipo -create~/Debug-iphoneos/libstaticTest.a~/Debug-iphonesimulator/libstaticTest.a-output ~/libstaticTest.a