iOS 环信集成问题(连文档都不说明的坑。。)

来源:互联网 发布:c语言有什么用 编辑:程序博客网 时间:2024/04/29 04:04

      首先,关于环信SDK的下载和一些依赖库的添加,在此我就不做详细介绍,(http://www.easemob.com/download/im)附上环信官网文档,可以看一下,上面都可以下载,也有相关配置介绍。

      今天主要说一下,环信集成遇到的各种坑,各种问题,有的连文档都不说明的坑。。(主要是讲解完全集成环信,UI的聊天界面,单聊功能也是环信的这种情况)

     

     各位可能刚在官网下载下来ChatDemo-UI3.0这个版本,会发现HyphenateFullSDK和官网文档有个不一样的地方,少了个文件(libHyphenateSDK.a)

而且你也可以看到,文档上面也说明有导入这个依赖库,这里你不用管,继续往下做就行,因为后面你会发现,根本就没有那个.a文件。接下来就是全部工作做完,你以为你要见证奇迹的时候了,(我主要说导入SDK之后编译没有错的情况,如果有问题的话,文档上有说明,百度上也有,我在此说的是文档没有说明的原因)。然后你会迫不及待的运行整个项目,但是你会发现出现一个错误:

dyld: Library not loaded: @rpath/Hyphenate.framework/Hyphenate
  Referenced from: /Users/liangyi/Library/Developer/CoreSimulator/Devices/F3F0CB24-F891-489D-B71F-1AA6DA17832C/data/Containers/Bundle/Application/8D4D4F2E-A19F-4590-BE80-41403C735448/EMDemo.app/EMDemo
  Reason: image not found

你看到最后一句感觉是少了一个图片,这个时候你就懵逼了,为啥导入环信会出现少了个图片呢?!你各种百度,估计也找不到问题的所在

你搜索的结果应该也是这样吧,而且你点开之后基本上里面全是英文,你更是一脸懵逼,可能你也会发现有人说把依赖库后面的status的状态改一下就能解决问题,把required改成optional,你也许会把Hyphenate.framework后面status给了,然后你运行发现没错了,心里百般激动,但是问题又来了,你会发现,不能发送消息了,然后你各种百度,各种问,而且还感觉和文档上说的一样做出来的,但是就是不能发消息,也许找不到问题的所在,最后你会发现EaseMessageViewController这个文件里的_conversation = [[EMClient sharedClient].chatManager getConversation:conversationChatter type:conversationType createIfNotExist:YES];这个方法里的_conversation=nil,永远都是nil,这样肯定不能进行实时聊天的,这个是创建会话对象的方法,这个为空,还玩个卵。

       最后说的就是解决的方案,如果你细心你会发现你的工程和demo的工程有个地方不一样

你会看到demo那里多个Hyphenate.framework,没错这里也要添加一个Hyphenate.framework(这就是连文档都不说明的地方),而且你也找不到原因,然后如果你之前把依赖库的status修改了,别忘了改回去,只要上面空白的地方加入Hyphenate.framework这个依赖库,整个环信单聊功能就完成了。

     (初来乍到,在此只是本人开发中遇到的问题,拿来和各位大神分享一下,如果有不详细的地方,可以留言说出来,彼此相互学习,谢谢)

 

0 0