Ease3.0SDK 与EaseUI3.0 集成汇总 (卡壳的朋友们可以看看,已顺利集成成功)
这两天 因为公司项目要 集成环信SDK ,所以对环信SDK了解了点。从SDK 集成到 EaseUI 集成也是吃了很多苦头遇到很多问题。谨以此篇文章来总结一下,希望以后的朋友们少走些弯路。
首先 ,SDK 集成 ,很多人集成用cocoapods 来集成。一开始 我也是用的Cocoapods.但是出了很多问题。捯饬了很长时间也没有弄出个所以然,所以果断放弃了。目前状况,建议朋友们不要用Cocoapods来集成 。
在SDK 集成的时候 要注意这样几点:
1、注意一下SDK 下的 lib文件夹 因为 里边有两个SDK 一个是有实时语音的 一个是没有实时语音的 。你用哪个就删掉另一个。
2、 注意Build settings下的 bitcode 要设置为NO ,因为 暂时 环信SDK 不支持bitcode编码。
3、注意Build settings 下的other linker flags 这里 如果你设置了-ObjC 就不要设置 文档里-force_load 路径
关键是要注意other linker flags下的其他设置。我之前是因为 里边 cocoapods 加载了一个-all_load字段 我删除这个 ,就解决问题了 。我相信 有很多朋友 也有这个字段 删掉就可以了 。
总体来讲 SDK 集成 成功与否 ,只需要看这三点就够了。
下面说下 EaseUI集成 。我按照视频走到建完.pch文件。发现出现了8个错误 。这里 我去3.0EaseUI Demo 里 搜了下 .pch文件 发现有两个 居然 然后 参考了一下 发现有很多错误 具体 怎么试的 就不说了 直接上代码吧 .pch代码如下 :
#import <Availability.h>
#ifndef __IPHONE_3_0
#warning "This project uses features only available in iOS SDK 3.0 and later."
#endif
#ifdef __OBJC__
#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>
#import "EMSDKFull.h"
#import "EaseUI.h"
#define NSEaseLocalizedString(key, comment) [[NSBundle bundleWithURL:[[NSBundle mainBundle] URLForResource:@"EaseUIResource" withExtension:@"bundle"]] localizedStringForKey:(key) value:@"" table:nil]
#define DEMO_CALL 1
#endif
以上就是 新建的PrefixHeader.pch中的代码 。
建完这个 你会发现 错误变成了一个。EaseMob 引用头文件not find 直接删掉这个头文件引用 。你会发现 又有了一个新的错误 NSObject +EaseMob 这个类中 出现了N个错误 。这里 不管它 直接删掉这个类 这个类是P作用都没有的 (我是挨个对比3.0Demo 的类 才发现 Demo 中 根本没有这个类)
做完了这步 。运行 ,恭喜你 集成环信3.0SDK,环信EaseUI 成功!!!!
首先 ,SDK 集成 ,很多人集成用cocoapods 来集成。一开始 我也是用的Cocoapods.但是出了很多问题。捯饬了很长时间也没有弄出个所以然,所以果断放弃了。目前状况,建议朋友们不要用Cocoapods来集成 。
在SDK 集成的时候 要注意这样几点:
1、注意一下SDK 下的 lib文件夹 因为 里边有两个SDK 一个是有实时语音的 一个是没有实时语音的 。你用哪个就删掉另一个。
2、 注意Build settings下的 bitcode 要设置为NO ,因为 暂时 环信SDK 不支持bitcode编码。
3、注意Build settings 下的other linker flags 这里 如果你设置了-ObjC 就不要设置 文档里-force_load 路径
关键是要注意other linker flags下的其他设置。我之前是因为 里边 cocoapods 加载了一个-all_load字段 我删除这个 ,就解决问题了 。我相信 有很多朋友 也有这个字段 删掉就可以了 。
总体来讲 SDK 集成 成功与否 ,只需要看这三点就够了。
下面说下 EaseUI集成 。我按照视频走到建完.pch文件。发现出现了8个错误 。这里 我去3.0EaseUI Demo 里 搜了下 .pch文件 发现有两个 居然 然后 参考了一下 发现有很多错误 具体 怎么试的 就不说了 直接上代码吧 .pch代码如下 :
#import <Availability.h>
#ifndef __IPHONE_3_0
#warning "This project uses features only available in iOS SDK 3.0 and later."
#endif
#ifdef __OBJC__
#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>
#import "EMSDKFull.h"
#import "EaseUI.h"
#define NSEaseLocalizedString(key, comment) [[NSBundle bundleWithURL:[[NSBundle mainBundle] URLForResource:@"EaseUIResource" withExtension:@"bundle"]] localizedStringForKey:(key) value:@"" table:nil]
#define DEMO_CALL 1
#endif
以上就是 新建的PrefixHeader.pch中的代码 。
建完这个 你会发现 错误变成了一个。EaseMob 引用头文件not find 直接删掉这个头文件引用 。你会发现 又有了一个新的错误 NSObject +EaseMob 这个类中 出现了N个错误 。这里 不管它 直接删掉这个类 这个类是P作用都没有的 (我是挨个对比3.0Demo 的类 才发现 Demo 中 根本没有这个类)
做完了这步 。运行 ,恭喜你 集成环信3.0SDK,环信EaseUI 成功!!!!