前言:
随着公司业务的发展,代码解耦模块化是必然趋势。功能模块抽取封装想必很多人都经历过。今天的主要目的不是谈这些,是想记录下在抽取网路服务层的过程中遇到的一些问题。
目的:
抽出来的代码放到任何一个新工程中都能正常使用。
过程
具体过程
- 既然不仅自己可以用,还要给别人用。那当然不能给源码,打包成静态库。
- 依赖三方库:“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.pngRun 会报错,.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,
网友评论