iOS SDK的封装(一)静态库.a SDK文件的封装和使用

前言

这几年做的项目,基本都是封装成SDK供第三方使用,在这里做个记录,希望各位技术大牛多多指教,同时也希望可以给别人给予帮助和借鉴。

1 库

1.1 什么是库

库是共享程序代码的方式,一般分为动态库和静态库。

  • 静态库:.a和.framework。链接时,静态库会被完整的复制到可执行文件中,被多次使用就又多份冗余拷贝。
  • 动态库:.dylib和.framework。链接时不复制,程序运行时由系统动态加载到内存,供程序调用,系统只会加载一次,多个程序共用,节省内存。
1.2 区别
  • .a是一个纯二进制文件,.framework中除了有二进制文件之外还有很多资源文件。
  • .a不能直接使用,至少要有.h文件配合,.framework文件可以直接使用。
  • .framework == .a + .h + sourceFile。
1.3 Debug和Release
  • Debug和Release,在我看来主要是针对其面向的目标不同的而进行区分的。
  • Debug通常称为调试版本,通过一系列编译选项的配合,编译的结果通常包含调试信息,而且不做任何优化,以为开发人员提供强大的应用程序调试能力。
  • Release通常称为发布版本,是为用户使用的,一般客户不允许在发布版本上进行调试。所以不保存调试信息,同时,它往往进行了各种优化,以期达到代码最小和速度最优。为用户的使用提供便利

2 .a静态库(SDK)创建

2.1、打开Xcode创建一个新的工程,选择工程如下:
image.png
2.2、工程创建后,配置参数,配置支持系统的版本这个参数,选择TARGETS --> Build Settings --> iOS Deployment Target ,配置如下:
image.png
2.3、设置适配所有模拟器架构,TARGETS -> Build Settings -> Build Active Architecture Only 设为 NO;设置完成后,就可以同时支持所有模拟器。
image.png
2.4、创建一个工具类AtaticLibTool,添加方法用于测试。
image.png
2.5、公开接口头文件,TARGETS --> Build Phases --> Copy Files,将需要公开的头文件,直接将头文件拖入即可;这里我们把新建的测试类AtaticLibTool.h公开供第三方使用。
image.png
2.6、编译打包。
2.6.1 首先 Edit Scheme
image.png
2.6.2 设置Build Configuration ,根据使用情况选择Debug或者Release。
image.png
2.6.3 选择后,commamd + B 编译,编译完毕后,我们会看到工程中Products文件夹下的libAtaticLib.a文件由红色变成了黑色。右键show in finder可以在其目录下找到它。那就是我们打包好的.a静态文件了;
image.png
image.png
2.7、右键show in finder可以在其目录下找到.a文件,使用cmd命令,合并虚拟机和真机的lib文件,例如:lipo -create 模拟器lib路径 真机lib路径 -output /Users/username/Desktop/libAtaticLibTools.a;
image.png

3 .a文件(SDK)的使用

新建一个可运行的工程,把头文件和.a文件拖入项目测试,导入SDK头文件即可使用.a文件中公开的方法。
image.png

4 完成.a文件(SDK)的创建和打包,静态库的使用已经完成。

5 后记

本篇主要讲述了一种.a SDK的生成和使用,感兴趣的给个赞或者关注~~~
感兴趣的可以看下面的文章
iOS SDK的封装(二)静态库.framework SDK文件的封装和使用

你可能感兴趣的:(iOS SDK的封装(一)静态库.a SDK文件的封装和使用)