iOS 封装静态库(SDK)的详细过程

iOS 封装静态库(SDK)的详细过程,第1张

    最近公司由于业务需求,需要提供一个SDK以供第三方公司的集成开发,之前没有这方面的开发经验有点迷茫。然后就在网上查看了一些相关的资料,自己研究了一天,成功的封装出了自己iOS开发过程中的第一个SDK包。同时也是为了以后开发SDK留下一个比较完整的笔记。

SDK的英文全名是:software development kit,翻译成中文的意思就是“软件开发工具包”,我个人的理解就是一个工具包,完全可以理解成开发中我们的一个公共类。

二、怎么实现SDK的封装呢?

1.打开Xcode开发工具创建我们的工具类

注:本文中使用的开发工具为xcode9.3

创建完成后

创建完成后,我们新建两个继承于基类的文件,一个用于封装网络请求一个用于封装我们需要提供给他人使用的方法以及需要动态改变的参数。

2.网络请求添加到SDK中一起封装

因为我们封装的SDK有的数据涉及到网络请求,所以我们封装的时候,顺便把需要用到的网络请求也封装进去。

1).使用cocoapods导入第三方库AFNetWorking

具体使用 见印象笔记内容,包含了使用cocoapods遇到的问题以及解决方法:https://app.yinxiang.com/shard/s58/nl/10186702/6820a297-24d1-480f-af32-8a054e4d64a6/   

2).在封装的SDK中如果涉及到使用第三方的库引用的时候,一定要在.m文件中进行引用

3.做完想要封装的文件后,开始进行封装

先进行编辑设置,在product -->Scheme--->Edit Scheme

此处必须是release,不能用debug模式,选择SDK是在iOS 、tvOS还是watchOS 4上面运行的SDK,在这儿我们选择iOS

在build Setting里面 搜索linking 设置Mach-O Type 为 static library

在build Phases --- >headers 中添加需要暴露的类,将Project里面想暴露的文件.h拖动到Public里面进行文件暴露

完成所有设置后,我们进行真机编辑和模拟器编辑最后合并成一个可以在真机和模拟器上运行的第三方SDK,

4.到这一步我们的SDK封装就差最后一步了,合并成能在真机和模拟器上运行的SDK

选中编辑好的包,我这儿是Demo_SDK.framework然后右击显示文件内容

找到这两个文件后,我们开始合并,得到我们想要的SDK

1).打开终端--->输入lipo -create 加上文件路径

1.为真机的文件,2为模拟器的文件,3为合并后输出问的地址

注意:我们所合并的文件是Demo_SDK,并不是所有的文件

合并到处文件为lipo结尾的

更改合并和的文件名称和合并前文件名称相同,并且去掉后缀。用合并和的文件替换掉和并前的文件

合并完成后拷贝处我们封装的SDK,在其他项目中引用就可以了

总结:截图比较多,为了照顾像我这样的小白,希望大家理解。第一次写,不喜勿喷,这只是作为自己的个人笔记,如果有什么不对的地方,希望大家指出一起交流学习,Thanks♪(・ω・)ノ

Demo链接:http://code.cocoachina.com/user/

iOS开发中支持静态库与动态库,不过使用动态库,上架会有麻烦。这里讲到如果创建静态库.a文件,其实很早之前公司要求做wifi的SDK的时候就开始涉及这个东西了,但一直没写出来。

首先新建一个静态库的项目

注意这里选择的不是模拟器运行,继续

这时候就得到了两个.a文件。

把Release-iphoneo和Debug-iphonesimulator复制到桌面新建的文件夹

最后使用命令lipo -create xxx.a xxx2.a -output xxx3.a

新建项目或者随便找个已创建测试项目,可直接拖进来放在Frameworks目录下

再把暴露的.h文件引进来

接下来,我把静态库和暴露的.h文件放入cocopods中使用,将静态库和暴露的.h上传至github上的仓库。并更新一个release版本。

更改cyhCheckphoneNum.podspec版本号,与spec.source_files和spec.vendored_libraries

更新github上的release版本

验证是否通过,通过上传至github

上传至cocopods

最后使用cocopods安装使用


欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/bake/11746223.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存