集成IOS 环信SDK
2015-10-13 16:05
369 查看
集成IOS SDK
在您阅读此文档时,我们假定您已经具备了基础的 iOS 应用开发经验,并能够理解相关基础概念。下载SDK
通过Cocoapods下载地址不包含实时语音版本SDK(EaseMobClientSDKLite),引用时 #import <EaseMobSDK/EaseMob.h>
pod 'EaseMobSDK', :git => 'https://github.com/easemob/sdk-ios-cocoapods.git'
包含实时语音版本SDK(EaseMobClientSDK),引用时 #import <EaseMobSDKFull/EaseMob.h>
pod 'EaseMobSDKFull', :git => 'https://github.com/easemob/sdk-ios-cocoapods-integration.git'
直接下载
您可以到环信官方网站下载环信 SDK。
到此您已经下载好了SDK,下面开始学习SDK的集成使用吧!
注: 由于iOS编译的特殊性,为了方便开发者使用,我们将i386 x86_64 armv7 armv7s arm64几个平台都合并到了一起,所以SDK的静态库(.a文件)比较大。实际集成编译出ipa后,根据调用功能的多少,实际只会增加2MB左右。
SDK目录讲解
1. 从官网上下载下来的包中分为如下四部分:环信 iOS SDK 开发使用
环信 iOS release note 更新说明
环信 iOS UIDemo 工程源码
环信 iOS UIDemo.ipa 打包的ipa
2. IOS SDK中有三个子文件夹:include、lib、resources,请不要擅自修改这些文件夹的任何东西,下面依次介绍这三个子文件夹。
lib 静态库,包含连个静态库libEaseMobClientSDK.a和libEaseMobClientSDKLite.a。libEaseMobClientSDKLite.a不包含实时语音功能,libEaseMobClientSDK.a包含所有功能。如果你的app中不需要实时语音功能,删掉libEaseMobClientSDK.a只使用libEaseMobClientSDKLite.a即可。
resources sdk的bundle,包含旧版sdk的数据库、消息提示音,sdk配置文件。其中sdk配置文件已加密,旧版sdk数据库几乎没什么实质作用。
include 包含sdk的头文件。
3. 主要介绍下include,所有的接口都在这个文件夹中。
EaseMobClientSDK/EaseMobClientSDKLite 包含在项目中要引用的总头文件,即在代码中只需#import”EMSDKFull.h”或#import”EaseMob.h”即可调用所有对应的api。
CallService 包含实时语音相关的接口
ChatService 包含聊天相关的接口,比如注册、登录、退出、单聊、群聊、群组等
Utility 包含DeviceManager和ErrorManager。DeviceManager硬件相关接口,ErrorManager错误码定义
具体接口讲解请转到Apple Docs
注:
include包含5个子文件夹:CallService、ChatService、EaseMobClientSDK、EaseMobClientSDKLite、Utility。如果无需实时语音功能,将CallService和EaseMobClientSDK删掉即可。
类似EM@Manager命名格式的文件夹的内部结构都是相似的。delegates文件夹包含各种代理接口,internal文件夹包含各种协议的声明,types文件夹包含各种实例的声明。
配置工程
1. 导入SDK将下载好的SDK文件夹(EaseMobSDK)拖入到项目中,并勾选上Destination
![](http://docs.easemob.com/lib/exe/fetch.php?media=start:300iosclientintegration:ios_importsdk.jpg)
2. 设置工程属性
2.1. 向Build Phases → Link Binary With Libraries 中添加依赖库
![](http://docs.easemob.com/lib/exe/fetch.php?media=start:300iosclientintegration:ios_addframework.jpg)
SDK依赖库有
MobileCoreServices.framework
CFNetwork.framework
libEaseMobClientSDKLite.a
libsqlite3.dylib
libstdc++.6.0.9.dylib
libz.dylib
libiconv.dylib
libresolv.dylib
libxml2.dylib
2.2. 向Build Settings → Linking → Other Linker Flags 中 添加-ObjC(注意大小写)
![](http://docs.easemob.com/lib/exe/fetch.php?media=start:300iosclientintegration:ios_otherlinker.jpg)
2.3. 如果项目中使用-ObjC有冲突,可以添加-force_load来解决。
格式为: -force_load[空格]EaseMobSDK/lib/libEaseMobClientSDKLite.a(静态库的路径)
step1. 先添加一个-force_load
![](http://docs.easemob.com/lib/exe/fetch.php?media=start:300iosclientintegration:ios_force_load1.jpg)
step2. 将静态库拖动到上一步添加的-force_load下面
![](http://docs.easemob.com/lib/exe/fetch.php?media=start:300iosclientintegration:ios_force_load2.jpg)
step3. 最终效果
![](http://docs.easemob.com/lib/exe/fetch.php?media=start:300iosclientintegration:ios_force_load3.jpg)
编译工程
以上步骤进行完后,编译工程,如果没有报错,恭喜你,集成sdk成功,可以进行下一步了。相关文章推荐
- ios- block循环引用问题
- ios- block循环引用问题
- iOS Xcode7免证书真机调试
- ShareSDK for IOS 的个人理解
- IOS开发之格式化日期时间
- iOS文件操作两种方式:NSFileManager和流操作
- IOS 在开发中使用KVO观测属性变化
- iOS 去掉导航栏返回按钮的文字
- 要缩小通过两个触摸点的观点(iOS)
- IOS中简单的KVC概念理解与应用
- ios--apns Device token的获得和改变详解
- IOS 开发过程中的 消息通知 小红点
- iOS--xib界面与和代码相关联
- iOS开发过程中的各种坑
- 2015年最新苹果开发者账号注册流程详解
- PhoneGap/Cordova插件开发入门(IOS版)(一)
- ios推送 程序未启动,收到推送消息,打开应用后跳转到相应的活动页面的代码。
- iOS 按钮小知识点总结
- 在ios中开发使用自动布局约束小注意点。
- IOS远程推送(转载)