版本记录
版本号 | 时间 |
---|---|
V1.0 | 2019.06.12 星期三 |
前言
做了几年的项目,基本都是对接三方的SDK,这里就自己封装一下SDK,顺便做个记录,希望有技术大牛多给我批评指正,也希望可以给别人以帮助和借鉴。
基本概念
写作环境:xcode 10.2.1
1. 库
什么是库
库是程序代码的集合,是共享程序代码的一种方式。
分类
- 开源库
- 公开源代码,可以看到具体实现,比如AFN和SDWebImage等。
- 闭源库
- 不公开源代码,是经过编译的二进制文件,看不到具体实现。
- 主要分为:静态库和动态库
静态库和动态库
- 存在形式
- 静态库:
.a
和.framework
。 - 动态库:
.dylib
和.framework
。
- 静态库:
自己建立的
.framework
是静态库,系统的.framework
是动态库。
.a
和.framework
的区别:
- 1)
.a
是一个纯二进制文件,.framework
中除了有二进制文件之外还有很多资源文件。- 2)
.a
不能直接使用,至少要有.h
文件配合,.framework
文件可以直接使用。- 3)
.framework == .a + .h + sourceFile
- 区别
- 静态库:链接时,静态库会被完整的复制到可执行文件中,被多次使用就有多分冗余拷贝。
- 动态库:链接时不复制,程序运行时由系统动态加载到内存,供程序调用,系统仅加载一次,多个程序共用,节省内存。
.framework
1. 生成SDK
配置
command + shift + N
新建立工程,并选择如下:
起一个名字,并保存到桌面
建好的工程目录如下所示:
接着进行配置
接着进行配置
新建类(JJSDKDemo
)
并添加新的方法
暴露头文件
但是最好按照它的建议写成下面这个样子
Edit Scheme
选择Release
打包
下面就开始打包了,选中真机,command + B
选中下面
并Show in Finder
打开终端输入命令lipo -create
把真机的JJFrameworkSDK.framework
下的JJFrameworkSDK
拖到终端。
输出到指定目录,在桌面上新建立一个home
文件夹。
合成以后
把下面目录中的文件替换成home新生成的文件
替换以后将这个framework
拷贝出去就可以使用了
2. 使用SDK
下面就新建工程,新建立一个和上面不同的工程。
将生成的SDK拷贝到新建立的工程中,直接往里拖就可以
拖动进去后如下所示:
这个是调整后的正确的图这里会展示找不到头文件的错误
这是因为生成库之前,没有将对应的类拖动public中,所有只能按照下面方式重新拖动到public中,再次lipo -create
生成库走一遍流程。
重新将SDK拖进去并Run就不再报错了。下面看一下调用:
可以看见就输出了SDK中封装的NSLog了。
到此为止,这个demo就此完毕了。
后记
本篇主要讲述了一种.framework SDK的生成和使用,感兴趣的给个赞或者关注~~~
网友评论