手动导入出现的问题:
第一步: 创建工程并去环信官网下载下载环信 SDK
第二步:把下载好的文件里的HyphenateSDK
文件与EaseUI
文件手动导入到你所创建的工程内
第三步:在TARGETS---General---Embedded Binaries
里添加HyphenateLite.framework
并运行项目
第四步:运行项目后会报错:'Hyphenate/Hyphenate.h' file not found
解决办法: 复制#if ENABLE_LITE ==1
到搜索栏搜索出所有包含的类,因为这些类都会陆续报这种类似的错,一次性解决问题,下图是搜索结果.点开所有类删除除了#import <HyphenateLite/HyphenateLite.h>
这个以外的所有if内的内容. (每个类剩余的不一样,分别为HyphenateLite/HyphenateLite.h,HyphenateLite/EMConversation.h,HyphenateLite/EMMessage.h,HyphenateLite/HyphenateLite.h,HyphenateLite/HyphenateLite.h,HyphenateLite/EMConversation.h)
之后运行,这个错误解决
第五步:上述运行后会出现新的错误如(Cannot find interface declaration for xxx)
解决办法:在PrefixHeader.pch
中导入#import<UIKit/UIKit.h>
即可解决,解决后再次运行项目
第六步:上述运行后出现新的错误如下图(Unknown type name "NSString")
解决方法:在左下角搜索类的方法里输入.c
,搜索出所有是.c
的类如(只搜索出一个),点开这个类,将属性的 identity and type
改为Objective-C Source
运行项目
第七步:上述运行后有时会出现"_SDScaledImageForKey", referenced from:
这个问题,但有时不会出现(不会出现的情况下运行项目不会再继续报错)
出现这个问题解决办法:在左上角的搜索里输入inline
进行搜索,点开这个类删除方法前缀“inline”
即可解决。到此所有前期集成问题已全部解决.
使用cocoapods导入出现的问题
因为我的工程中有手动导入的重新封装过得MBProgressHUD
,所以easeUI
无法使用pods导入,故easeUI
手工导入,如果你的项目中已经集成了SDWebImage
,MJRefresh
,MBProgressHUD
, 那么删除EaseUI
中的三个第三方。
删除是要注意:
-
MBProgressHUD
,只要删除MBProgressHUD.h
, 和MBProgressHUD.m
两个文件;
2.MJRefresh
,删除整个文件夹; -
SDWebImage
在EaseUI
中叫做EMSDWebImage
,删除该文件夹。此时运行项目还会报错,这时需要在项目的PCH
文件中引入头文件:#import<HyphenateLite/HyphenateLite.h>
和import”EaseUI.h”
,再将EaseUI
中导入Hyphenate
的地方均改为HyphenateLite
(如果你导入的是Hyphenate
则不会有此报错),将和SDWebImage
相关的全面的EM
删掉, 例如UIImage+EMGIF
,删除EM
变为UIImage+GIF
;如果觉得不知道怎么找,那就command + B
进行编译,报错后点开查看是和SDWebImage
相关的吧前面的EM
都删掉