iOS封装SDK(分别生成.a和framework)

笔者找了很多SDK封装的资料,没有一个讲的很完全和详细一点的资料,所以决定分享一篇详细的经验出来,希望能有助于开发人员封装自己的SDK

笔者QQ:1711647013

注:本文只针对OC语言封装,Swift敬请期待下一期

一.库的介绍

iOS封装SDK(分别生成.a和framework)_第1张图片

强调几点:

 第一  (.dylib库文件) == (.tdb库文件)

第二. 自己建立的.framework是静态库,而系统的.framework是动态库

第三. .a文件和.framework文件的区别:

          区别一: .a是一个纯二进制文件,.framework中除了有二进制文件之外还有很多资源文件

          区别二: .a不能直接使用,至少要有.h文件配合,.framework文件可以直接使用

          区别三:  .framework == .a + .h + sourceFile

二. 生成.framework

步骤

iOS封装SDK(分别生成.a和framework)_第2张图片

1.利用Xcode,新建工程

自己命名一个工程名字,我命名为:WeChatSDK

2.设置参数

iOS封装SDK(分别生成.a和framework)_第3张图片


iOS封装SDK(分别生成.a和framework)_第4张图片


iOS封装SDK(分别生成.a和framework)_第5张图片


3.新建类,在类中编写代码(我这里新建WeChatSpay类,并在类中添加一个支付方法)

iOS封装SDK(分别生成.a和framework)_第6张图片

4.设置Headers

将你要公开的头文件(.h文件)拖至Public下,通常都是把头文件放在Public下

要隐藏的放在Private或者Project下,当然,隐藏的头文件就无法再被引用。

iOS封装SDK(分别生成.a和framework)_第7张图片

5.修改Debug模式为Release,选择close

iOS封装SDK(分别生成.a和framework)_第8张图片

6. 打包Framework(这里只讲一种方法)

选中模拟器, command + b

选中真机,command + b

iOS封装SDK(分别生成.a和framework)_第9张图片


iOS封装SDK(分别生成.a和framework)_第10张图片

打开终端命令行:输入lipo -create

iOS封装SDK(分别生成.a和framework)_第11张图片
iOS封装SDK(分别生成.a和framework)_第12张图片
iOS封装SDK(分别生成.a和framework)_第13张图片
iOS封装SDK(分别生成.a和framework)_第14张图片


7. 使用Framework

新建工程(注意和上面新建工程不一样的地方),拷贝上一步最后合成的framework到工程中

iOS封装SDK(分别生成.a和framework)_第15张图片
iOS封装SDK(分别生成.a和framework)_第16张图片

三.  生成.a

1.新建工程(自己命名,这里还以WeChatSDK为例)

iOS封装SDK(分别生成.a和framework)_第17张图片

2.配置参数

iOS封装SDK(分别生成.a和framework)_第18张图片

3.创建bundle文件,名字一般与工程名相同(如果静态库有资源文件要使用,必须放入.bundle文件)

iOS封装SDK(分别生成.a和framework)_第19张图片

4.准备工作已经完成,准备写代码

iOS封装SDK(分别生成.a和framework)_第20张图片


iOS封装SDK(分别生成.a和framework)_第21张图片
iOS封装SDK(分别生成.a和framework)_第22张图片

5.打包.a文件

iOS封装SDK(分别生成.a和framework)_第23张图片

选中模拟器, command + b

选中真机,command + b


iOS封装SDK(分别生成.a和framework)_第24张图片


iOS封装SDK(分别生成.a和framework)_第25张图片

合成:(如下只给合成的界面,具体不懂得可以看.framework中合成的步骤)

iOS封装SDK(分别生成.a和framework)_第26张图片


iOS封装SDK(分别生成.a和framework)_第27张图片

6. 使用.a的SDK

iOS封装SDK(分别生成.a和framework)_第28张图片



总结:笔者使用的Xcode是8.2.1版本,如果有偏差导致找不到方法,请添加文章开头的联系方式寻求帮助

你可能感兴趣的:(iOS封装SDK(分别生成.a和framework))