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

前言:

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

目的:

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


具体过程

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

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

2. CocoaPods 集成

网络服务层(socket.io)抽取记录_第1张图片
7B1F0FD0-8AF0-49FC-BE87-2AC2ABD11042.png
  • 编译一把会会很多错误:


    网络服务层(socket.io)抽取记录_第2张图片
    2B881C44-5AC3-44D8-A36A-42C667D0DFAB.png
  • 直接fix,这是三方的JSONKit 报错,应该是盖库没更新引起的,反正我们做的包运行依赖于JSONKit,但是打包是没有将这些三方的东西打进去的,解决错误是为了顺利通过编译。完了就能编译通过。

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


    网络服务层(socket.io)抽取记录_第3张图片
    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


    网络服务层(socket.io)抽取记录_第4张图片
    CB537E37-6C73-4804-93DC-9CC3A3D80A30.png

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


    网络服务层(socket.io)抽取记录_第5张图片
    A4DCCC21-7D3B-471D-8026-2427107FCF50.png

3.测试

网络服务层(socket.io)抽取记录_第6张图片
DF9C2A8F-B7AD-4B02-9BCD-853CDE3C23DC.png

Run 会报错,.JSONKit问题,fix. 完成运行会成功,但是最后会crash
网络服务层(socket.io)抽取记录_第7张图片
929348EF-CDF1-473A-9C28-E9F8DEDC9F78.png

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


网络服务层(socket.io)抽取记录_第8张图片
77DEB051-EB2A-4661-881A-C3D0D551037E.png

在运行大功告成

网络服务层(socket.io)抽取记录_第9张图片
18C280E1-51E4-4B0B-A41D-9083D5E6E564.png

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

你可能感兴趣的:(网络服务层(socket.io)抽取记录)