网络服务层(socket.io)抽取记录

前言:

随着公司业务的发展,代码解耦模块化是必然趋势。功能模块抽取封装想必很多人都经历过。今天的主要目的不是谈这些,是想记录下在抽取网路服务层的过程中遇到的一些问题。

目的:

抽出来的代码放到任何一个新工程中都能正常使用。
过程


具体过程

  • 既然不仅自己可以用,还要给别人用。那当然不能给源码,打包成静态库。
  • 依赖三方库:“Socket.IO-Client-Swift” 和“JSONKit”,打包的时候当让不能把这些也打进去。

1. 创建工程,过程可见https://www.jianshu.com/p/beb9b658ce30

2. CocoaPods 集成

7B1F0FD0-8AF0-49FC-BE87-2AC2ABD11042.png
  • 编译一把会会很多错误:


    2B881C44-5AC3-44D8-A36A-42C667D0DFAB.png
  • 直接fix,这是三方的JSONKit 报错,应该是盖库没更新引起的,反正我们做的包运行依赖于JSONKit,但是打包是没有将这些三方的东西打进去的,解决错误是为了顺利通过编译。完了就能编译通过。

  • 添加我们自己需要打包的代码


    93F48982-928E-4C1C-A5FA-089F2573AD6B.png

    编译下回报错,这里主要是因为有的文件是MRC的,设置下就好了。-fno-objc-arc

  • 打包静态库,方法参照https://www.jianshu.com/p/beb9b658ce30 注意配置

  • Build Active Architecture Only = NO

  • 支持的最低版本

  • 设置暴露的头文件
    BuildPhase 点击+ 添加New Header Fhase


    CB537E37-6C73-4804-93DC-9CC3A3D80A30.png

    我这里只要暴露一个包含所有接口的头文件。
    编译结果


    A4DCCC21-7D3B-471D-8026-2427107FCF50.png

3.测试

DF9C2A8F-B7AD-4B02-9BCD-853CDE3C23DC.png

Run 会报错,.JSONKit问题,fix. 完成运行会成功,但是最后会crash
929348EF-CDF1-473A-9C28-E9F8DEDC9F78.png

报错找不到md5Hash方法,这是由于该方法写在一个分类中,如果,第三方库中有 category,需要设置为 -ObjC


77DEB051-EB2A-4661-881A-C3D0D551037E.png

在运行大功告成

18C280E1-51E4-4B0B-A41D-9083D5E6E564.png

注意:在集成JSONKit时候,如果发现#import"JSONKit.h"找不到,即发现import的时候没有提示JSONKit的文件,可以在target-Build Settings下修改“User Header Search Paths”项,新增${SRCROOT}并选择rcursive,

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 大质量的物体会导致空间弯曲, 而这又影响了物质的运动, 这是引力的真正本质。 -完- ©严正法律声明 本文版权受我...
    更好时代阅读 79评论 0 2
  • 从第一次填 山初小学毕业登记表 至今 填过的表格五花八门 每一次 在“籍贯”那一栏 我都想把南日岛填上 我想写上 ...
    种树刘郎阅读 457评论 0 1
  • 1.对Targets的理解 关于Targets,Apple的人是这样说的: “ Targets that defi...
    稻草人12138阅读 3,346评论 0 1
  • 马戈 井通平台要上区块链和实体企业ico,要做交易所,宣传工作总要先行吧,首先有一个面向公众的网页,介绍井通公司、...
    许中阳阅读 291评论 0 0