集成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

注:

  1. include包含5个子文件夹:CallService、ChatService、EaseMobClientSDK、EaseMobClientSDKLite、Utility。如果无需实时语音功能,将CallService和EaseMobClientSDK删掉即可。
  2. 类似EM@Manager命名格式的文件夹的内部结构都是相似的。delegates文件夹包含各种代理接口,internal文件夹包含各种协议的声明,types文件夹包含各种实例的声明。

配置工程

1. 导入SDK

将下载好的SDK文件夹(EaseMobSDK)拖入到项目中,并勾选上Destination

2. 设置工程属性

2.1. 向Build Phases → Link Binary With Libraries 中添加依赖库

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(注意大小写)

2.3. 如果项目中使用-ObjC有冲突,可以添加-force_load来解决。

格式为: -force_load[空格]EaseMobSDK/lib/libEaseMobClientSDKLite.a(静态库的路径)

  • step1. 先添加一个-force_load

  • step2. 将静态库拖动到上一步添加的-force_load下面

  • step3. 最终效果

编译工程

以上步骤进行完后,编译工程,如果没有报错,恭喜你,集成sdk成功,可以进行下一步了。

集成IOS 环信SDK的更多相关文章

  1. 李洪强iOS开发本人集成环信的经验总结_01环信SDK的导入

    李洪强iOS开发本人集成环信的经验总结_01环信SDK的导入 01 - 直接在项目中导入SDK和一些静态库 这个时候,没有错误的编译没有错误的话,就说明SDK已经配置成功 还有一种方法是用cocoap ...

  2. iOS 环信集成项目应用

    环信iOS端3.0版本集成记录--聊天界面篇 环信离线推送证书... 1,环信处在后台的时候,消息的接收与推送 离线发推送 配置属性 EMCallOptions *options = [[EMClie ...

  3. 环信SDK集成

    利用环信SDK可以实现即时通讯,但在集成的过程中碰到了不少的坑. 注意 选择项目路径,这里以最新版环信demo为例 注意:环信的ChatDemoUI这个demo里边因为研发的同事为了照顾老版本的And ...

  4. 李洪强iOS开发之-环信02.2_环信官网下载环信 SDK

    李洪强iOS开发之-环信02.2_环信官网下载环信 SDK 移动客服即时通讯云 iOS SDK 当前版本:V3.1.4 2016-07-08 [ 版本历史 ] | 开发指南 | 知识库 | Demo源 ...

  5. 李洪强iOS开发之-环信02.1_环信 SDK 2.x到3.0升级文档

    李洪强iOS开发之-环信02.1_环信 SDK 2.x到3.0升级文档 SDK 2.x 至 3.0 升级指南 环信 SDK 3.0 升级文档 3.0 中的核心类为 EMClient 类,通过 EMCl ...

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

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

  7. android-使用环信SDK开发即时通信功能及源代码下载

    近期项目中集成即时聊天功能.挑来拣去,终于选择环信SDK来进行开发,选择环信的主要原因是接口方便.简洁.说明文档清楚易懂.文档有android.ios.和后台server端.还是非常全的. 环信官网: ...

  8. 环信SDK与Apple Watch的结合(2)

    这一篇主要是介绍怎么拖apple watch上的相关页面,附源码EMWatchOCDemo. 需要在工程中的“EMWatchOCDemo WatchKit App”中进行操作,该文件夹的结构如图 Wa ...

  9. 环信SDK与Apple Watch的结合(1)

    该系列是记录在apple watch上开发IM,用到了最近挺流行的环信IM SDK. 一.先来一段网上随处可查到的信息: 1.两种分辨率 1.65寸 312*390 1.5寸 272*340 2.开发 ...

随机推荐

  1. linux系统定时任务

    crontab常用的几个命令如下 sudo crontab -l #显示所有的定时任务 sudo crontab -e #编辑任务 sudo crontab -r #删除所有的任务 编辑任务时的书写方 ...

  2. 如果我可以重新学习iOS开发(转)

    在过去的几个月里,我一直在学习用Objective-C编写iOS app,最后我开始理清思绪.这比我想象中要难很多,也花了太长时间. 我经常遇到困难.感到沮丧,修复bug比实际写代码要花太多时间.但是 ...

  3. 使用canvas实现擦玻璃效果---转载

    <!DOCTYPE html> <html> <head lang="zh"> <meta name="viewport&quo ...

  4. Comet:基于 HTTP 长连接的“服务器推”技术解析

    原文链接:http://www.cnblogs.com/deepleo/p/Comet.html 一.背景介绍 传统web请求,是显式的向服务器发送http Request,拿到Response后显示 ...

  5. 软考之PV操作(同步)

    这几天,陆续有那么三两个同学跟我讨论了一下关于软考上的PV操作的题,吾虽不才,但还是把同学们讲通了,在此,特分享一下自己的思路和想法,愿对大家有点帮助! 下面,我们就通过自己做过的试卷上两道题来分析: ...

  6. codeforces733-C. Epidemic in Monstropolis 贪心加链表

    题意 现在有一个怪兽序列a[i],权值大的怪兽可以吃权值小的怪兽,吃完之后权值大的怪兽的权值会变成两者权值的和,相邻的怪兽才能吃 吃完之后,位置合并,队列前移,从左到右重新编号,重复这一过程, 然后给 ...

  7. 从一个故障说说Java的三个BlockingQueue

    原文地址:http://hellojava.info/?p=464 最近出了个故障,排查的时候耗费了很长的时间,回顾整个排查过程,经验主义在这里起了不好的作用,直接导致了整个故障排查的时间非常长,这个 ...

  8. thinkphp几个表的数据合并,并用数组分页

    控制器: //金币扣除 public function jbkc(){ $map['UG_dataType']= 'xtkc'; $list1 = M ( 'userget' )->where ...

  9. C语言补码作用

    补码主要是为了cpu运算器在进行减法运算时避免借位而设立的. 在早期,cpu中的运算器部分,只要实现一个加法器就可以完成四由算术运算. 因为计算机中的数值编码是有限位数的,所以减法实际上相当于加上减数 ...

  10. ASP.NET中的GridView自带的编辑更新功能

    string ConStr = ConfigurationManager.ConnectionStrings["NorthwindConnectionString"].Connec ...