====== iOS SDK 介绍及导入 ====== ---- ===== iOS SDK 介绍 ===== 环信 SDK 为用户开发 IM 相关的应用提供的一套完善的开发框架。包括以下几个部分: {{:im:200androidcleintintegration:demo.png?300|开发框架}} * SDK_Core: 为核心的消息同步协议实现,完成与服务器之间的信息交换。 * SDK: 是基于核心协议实现的完整的 IM 功能,实现了不同类型消息的收发、会话管理、群组、好友、聊天室等功能。 * EaseUI: 是一组 IM 相关的 UI 控件,旨在帮助开发者快速集成环信 SDK。 用户可以基于我们提供的 Demo 实现自己的应用,也可以基于 SDK 开发自己应用。 SDK 采用模块化设计,每一模块的功能相对独立和完善,用户可以根据自己的需求选择使用下面的模块: {{:im:200androidcleintintegration:sdk.png|模块化设计}} * EMClient: 是 SDK 的入口,主要完成登录、退出、连接管理等功能。也是获取其他模块的入口。 * EMChatManager: 管理消息的收发,完成会话管理等功能。 * EMContactManager: 负责好友的添加删除,黑名单的管理。 * EMGroupManager: 负责群组的管理,创建、删除群组,管理群组成员等功能。 * EMChatroomManager: 负责聊天室的管理。 注意:如果您是从 SDK2.x 升级到 3.0,可以参考[[im:300iosclientintegration:105upgradeguide|环信 SDK 2.x到3.0升级文档]]。 ===== 视频教程 ===== 以下是SDK集成参考视频,您可以通过视频学习如何集成环信SDK。 * OC_SDK集成:http://www.imgeek.org/video/40 * Swift_SDK集成:http://www.imgeek.org/video/42 ===== 集成 iOS SDK ===== 在您阅读此文档时,我们假定您已经具备了基础的 iOS 应用开发经验,并能够理解相关基础概念,''SDK支持iOS8及以上iOS版本''。 ==== 下载SDK (sdk 3.2.3之后只提供动态库版本) ==== **注: 由于 iOS 编译的特殊性,为了方便开发者使用,我们将 i386 x86_64 armv7 arm64 几个平台都合并到了一起,所以使用动态库上传appstore时需要将i386 x86_64两个平台删除后,才能正常提交,删除方式请参考下文中的“集成动态库上传AppStore”** === 通过 Cocoapods 下载地址:=== 不包含实时语音版本 SDK(HyphenateLite),引用时 #import pod 'HyphenateLite' 包含实时语音版本 SDK(Hyphenate),引用时 #import pod 'Hyphenate' === 手动导入 SDK === 您可以到[[http://www.easemob.com/download/im|环信官网]]下载环信 SDK。 到此您已经下载好了 SDK,下面开始学习 SDK 的集成使用吧! ===== SDK 目录讲解 ===== 从官网上下载下来的包中分为如下五部分: * 环信 iOS HyphenateSDK 开发使用(不包含实时通话功能) * 环信 iOS HyphenateFullSDK 开发使用(包含实时通话功能) * 环信 iOS doc SDK 相关API文档 * 环信 iOS ChatUIDemo3.0 工程源码 * 环信 iOS EaseUI 工程源码 * 环信 iOS chatdemo-ui-3.x.x.ipa 打包的 ipa 具体接口讲解请转到 [[http://www.easemob.com/apidoc/ios/chat3.0/index.html|Apple Docs]]。 ===== 第三方库介绍 ===== EaseUI 中用到的第三方库: * MWPhotoBrowser: 图片处理库,浏览显示 * MJRefresh: 用于页面刷新 * MBProgressHUD: 用于提示加载刷新 * libopencore-amrnb.a,libopencore-amrwb.a: 用于 amr 与 wav 之间的转换 Demo 中用到的第三方库: * Parse.framework、Bolts.framework: Demo 中的用户信息存储在 Parse,这两个库是 Parse 所需要的库,开发者如果没用 Parse 存储,不要复制到自己项目中 * libMobClickLibrary.a: 友盟相关的库,用于环信 Demo 基本信息的统计,开发者不用或者已有别的版本的库不要复制到自己项目 ===== 配置工程 ===== ==== 导入 SDK(动态库) ==== 将下载好的 SDK 文件夹(HyphenateSDK)拖入到项目中,并勾选上 Destination。 {{:start:300iosclientintegration:ios_importsdk.jpg?nolink|导入SDK}} === 设置工程属性 === 第 1 步:向General -> Embedded Binaries 中添加依赖库。 {{ :im:300iosclientintegration:ios_import_dynamic_3.0sdk.jpg |添加依赖库}} (Embedded Binaries 中添加后,截图中的 Linked Frameworks and Libraries 中也会自动添加) ===== 编译工程 ===== 以上步骤进行完后,编译工程。如果没有报错,恭喜你,集成 SDK 成功,可以进行下一步了。 ===== 集成动态库上传AppStore ===== 由于 iOS 编译的特殊性,为了方便开发者使用,我们将 i386 x86_64 armv7 arm64 几个平台都合并到了一起,所以使用动态库上传appstore时需要将i386 x86_64两个平台删除后,才能正常提交审核\\ 在SDK当前路径下执行以下命令删除i386 x86_64两个平台\\ bak文件是备份目录,上传appstore之后需要替换回bak目录下的SDK\\ 实时音视频版本Hyphenate.framework mkdir ./bak cp -r Hyphenate.framework ./bak lipo Hyphenate.framework/Hyphenate -thin armv7 -output Hyphenate_armv7 lipo Hyphenate.framework/Hyphenate -thin arm64 -output Hyphenate_arm64 lipo -create Hyphenate_armv7 Hyphenate_arm64 -output Hyphenate mv Hyphenate Hyphenate.framework/ 不包含实时音视频版本HyphenateLite.framework mkdir ./bak cp -r HyphenateLite.framework ./bak lipo HyphenateLite.framework/HyphenateLite -thin armv7 -output HyphenateLite_armv7 lipo HyphenateLite.framework/HyphenateLite -thin arm64 -output HyphenateLite_arm64 lipo -create HyphenateLite_armv7 HyphenateLite_arm64 -output HyphenateLite mv HyphenateLite HyphenateLite.framework/ ---- 上一页:[[im:300iosclientintegration:10prepareforsdkimport|集成 iOS SDK 前的准备工作]] 下一页:[[im:300iosclientintegration:30iossdkbasic|iOS SDK 基础功能]]