美文网首页
网络服务层(socket.io)抽取记录

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

作者: 鲲鹏DP | 来源:发表于2018-04-19 17:26 被阅读38次

    前言:

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

    目的:

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


    具体过程

    • 既然不仅自己可以用,还要给别人用。那当然不能给源码,打包成静态库。
    • 依赖三方库:“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,

    相关文章

      网友评论

          本文标题:网络服务层(socket.io)抽取记录

          本文链接:https://www.haomeiwen.com/subject/bhiwkftx.html