笔者找了很多SDK封装的资料,没有一个讲的很完全和详细一点的资料,所以决定分享一篇详细的经验出来,希望能有助于开发人员封装自己的SDK
笔者QQ:1711647013
注:本文只针对OC语言封装,Swift敬请期待下一期
一.库的介绍
强调几点:
第一 (.dylib库文件) == (.tdb库文件)
第二. 自己建立的.framework是静态库,而系统的.framework是动态库
第三. .a文件和.framework文件的区别:
区别一: .a是一个纯二进制文件,.framework中除了有二进制文件之外还有很多资源文件
区别二: .a不能直接使用,至少要有.h文件配合,.framework文件可以直接使用
区别三: .framework == .a + .h + sourceFile
二. 生成.framework
步骤
1.利用Xcode,新建工程
自己命名一个工程名字,我命名为:WeChatSDK
2.设置参数
3.新建类,在类中编写代码(我这里新建WeChatSpay类,并在类中添加一个支付方法)
4.设置Headers
将你要公开的头文件(.h文件)拖至Public下,通常都是把头文件放在Public下
要隐藏的放在Private或者Project下,当然,隐藏的头文件就无法再被引用。
5.修改Debug模式为Release,选择close
6. 打包Framework(这里只讲一种方法)
选中模拟器, command + b
选中真机,command + b
打开终端命令行:输入lipo -create
7. 使用Framework
新建工程(注意和上面新建工程不一样的地方),拷贝上一步最后合成的framework到工程中
三. 生成.a
1.新建工程(自己命名,这里还以WeChatSDK为例)
2.配置参数
3.创建bundle文件,名字一般与工程名相同(如果静态库有资源文件要使用,必须放入.bundle文件)
4.准备工作已经完成,准备写代码
5.打包.a文件
选中模拟器, command + b
选中真机,command + b
合成:(如下只给合成的界面,具体不懂得可以看.framework中合成的步骤)
6. 使用.a的SDK
总结:笔者使用的Xcode是8.2.1版本,如果有偏差导致找不到方法,请添加文章开头的联系方式寻求帮助