环信demo3的集成问题

由于项目中需要聊天功能,所以最近几天研究了环信demo的集成,在集成过程中遇到了N多个BUG,集成过程及其的艰辛,因为环信聊天毕竟是一个很大的框架,在集成过程中出现重复编译在所难免,通过自己的努力并且咨询了环信的技术客服,终于集成成功,现在分享一下自己的集成步骤。

  • 首先是导入环信的sdk,编译,这个过程的困难不是很多,简单提一下,首先下载好EaseMobSDK,这里注意一点的是,lib静态库中包括EaseMobClientSDKLiteEaseMobClientSDK这两种,如果你需要实时语音的话选择EaseMobClientSDK,否则选择EaseMobClientSDKLite,两者只能导入一个。
  • 其次添加需要的静态库
    MobileCoreServices.framework
    CFNetwork.framework
    ibsqlite3.dylib
    libstdc++.6.0.9.dylib
    libz.dylib
    libiconv.dylib
    libresolv.dylib
    libxml2.dylib
(如果使用的是xcode7,后缀为tbd)
  • 最后向Build Settings → Linking → Other Linker Flags 中 添加-ObjC(注意大小写)

以上过程基本不会出现问题,在运行编译都能通过。
主要是环信UI的集成过程中会出现很多问题,官方也没有具体说如何导入,只是简略说一下参照demo,然后就开始将自定义过程,现在我将这个过程写一遍,大家仔细看好。


环信demo3的集成问题_第1张图片
将这三个文件夹拖入项目中
可能会出现以下错误
  • 1、


    环信demo3的集成问题_第2张图片
    错误一

这个报错就是导入SDK是将EaseMobClientSDKLiteEaseMobClientSDK这两个静态库重复导入,删除不需要的即可。(如果上面已经删除过,忽略错误一)

  • 2、
环信demo3的集成问题_第3张图片
错误二

了解这个错误首先要知道环信静态库lib,包含连个静态库libEaseMobClientSDK.alibEaseMobClientSDKLite.alibEaseMobClientSDKLite.a不包含实时语音功能,libEaseMobClientSDK.a包含所有功能。如果你的app中不需要实时语音功能,删掉libEaseMobClientSDK.a只使用libEaseMobClientSDKLite.a即可,需要实时音视频功能同理,删掉libEaseMobClientSDKLite.a即可。
-ObjC是配合libEaseMobClientSDK.a使用的,-force_load加静态库路径是配合libEaseMobClientSDKLite.a使用的,所以-force_load所加静态库路径是libEaseMobClientSDKLite.a的路径,不要混淆。
其次还有要导入FixFopen.c
地址如下:

环信demo3的集成问题_第4张图片
FixFopen.c

  • 3、
    当你导入FixFopen.c时可能出现错误三
环信demo3的集成问题_第5张图片
错误三

出现这个错误是你在导入

环信demo3的集成问题_第6张图片
导入的文件

在导入上述文件的的时候没有添加所需要的依赖库,出现错误三只需要添加以下缺失的库文件:


依赖库
  • 4、

导入EaseUI时,需要配置pch文件,如果你项目中本身带有pch文件,将所需要的头文件导入你的项目中即可,但是导入可能会出现错误,如下(错误四)

环信demo3的集成问题_第7张图片
pch

环信demo3的集成问题_第8张图片
错误四

只需加上#ifdef __OBJC__
#endif条件即可。

还有在运行环信的过程中,会出现警告Warning!ivar size mismatch in PSUICollectionView_ - cannot change the superclass,其实这个警告是无任何影响的,解决办法非常简单,将PSTCollectionView.mchar filler[200] 替换成char filler[300]即可。

最后提醒大家一点的是,在你导入的文件中可能会重复导入了某个第三方库,删除即可,如果与项目中冲突删除即可。此外对于使用第三方库管理cocopods所出现的错误还没有研究过,后期会更新。。。

以上是快速集成环信SDK和UI出现错误的一些总结,再此感谢环信客服1019的帮助,对于环信具体的使用,参照官方demo即可,后期我也会继续更新环信的具体使用,希望大家能够提出宝贵意见,以便完善环信的使用,让更多新手能够快速集成环信到自己的项目中...

你可能感兴趣的:(环信demo3的集成问题)