====== iOS SDK 介绍及导入 ====== ---- ===== 集成 iOS SDK 前的准备工作 ===== ==== 注册环信开发者账号并创建后台应用 ==== 详细操作步骤见[[im:quickstart:guide:experience|开发者注册及管理后台]]。 ==== 制作并上传推送证书 ==== 如果不需要实现离线推送功能,请忽略这步。 === 制作推送证书 === 第 1 步:打开[[https://developer.apple.com/|苹果开发者网站]]。 {{ :im:300iosclientintegration:ios_apns_1_v1.jpg?nolinK|苹果开发者网站}} 第 2 步:从 Account 进入 Certificates, Identifiers & Profiles。 {{ :im:300iosclientintegration:ios_apns_2_v1.jpg?nolinK|Member Center}} 第 3 步:选择要制作的推送证书。 {{:im:300iosclientintegration:ios_apns_3_v1.jpg?nolink|选择推送证书}} * 对于开发环境(sandbox)的推送证书,请选择 Apple Push Notification service SSL (Sandbox) * 对于生产环境(production)的推送证书,请选择 Apple Push Notification service SSL (Sandbox & Production) 注意:环信暂时不支持Apple Push Notification Authentication Key (Sandbox & Production) 第 4 步:选择对应的 APP ID(环信示例使用 ChatDemoUI,所以此处选择 com.easemob.enterprise.demo.ui)。 {{:im:300iosclientintegration:ios_apns_4_v1.jpg?nolink|选择APP ID}} 第 5 步:根据 Certificate Assistant 的提示,创建 Certificate Request。 {{:im:300iosclientintegration:ios_apns_5_v1.jpg?nolink|创建Certificate Request}} 第 6 步:上传上一步中创建的 Certificate Request 文件。 {{:im:300iosclientintegration:ios_apns_6_v1.jpg?nolink|上传Certificate Request}} 第 7 步:上传完毕后,推送证书就被正确生成了,之后我们下载下来这个证书,并双击导入系统。 {{:start:300iosclientintegration:ios_apns_7.png?nolink|下载推送证书}} === 上传推送证书 === 第 1 步:打开 Application –> Utilities –> Keychain Access -> Certificates 应用,我们会看到有刚刚我们制作好的推送证书。 {{:start:300iosclientintegration:ios_apns_8.png?nolink|导出推送证书}} 导出并保存为 P12 格式并设置密码。**(本步导出证书使用的电脑务必与“第 5 步:创建 Certificate Request”时使用的是一台电脑。)** 第 2 步:登录[[http://console.easemob.com|环信管理后台]]。 {{:im:ios:sdk:注册.png?nolink|}} 第 3 步:输入了正确的账号后,选择对应的 APP(环信示例为 easemob,点击 easemob)。 {{:im:ios:sdk:3_.png?direct|}} 第 4 步:填写证书名称。 这个名称是个有意义的名字,对推送直接相关,稍后会在源码的修改里继续用到这个名字。上传之前导出的 P12 文件,密码则为此 P12 文件的密码,证书类型请根据具体情况选择。 (创建的是 Apple Push Notification service SSL Sandbox 请选择开发环境;Apple Push Notification service SSL Production 请选择生产环境。) 第 5 步:上传证书。 {{:im:ios:sdk:上传证书.png?nolink|}} 注意:请正确选择是生产环境还是测试环境的证书,应用包名指的是Bundle Id。 ===== iOS SDK 介绍 ===== iOS SDK 采用模块化设计,每一模块的功能相对独立和完善,用户可以根据自己的需求选择使用下面的模块: {{ :im:ios:sdk:image005.png?nolink |模块化设计}} * EMClient: 是 SDK 的入口,主要完成登录、退出、连接管理等功能。也是获取其他模块的入口。 * EMChatManager: 管理消息的收发,完成会话管理等功能。 * EMContactManager: 负责好友的添加删除,黑名单的管理。 * EMGroupManager: 负责群组的管理,创建、删除群组,管理群组成员等功能。 * EMChatroomManager: 负责聊天室的管理。 注意:如果您是从 SDK2.x 升级到 3.0,可以参考[[im:ios:sdk:upgradeguide|环信 SDK 2.x到3.0升级文档]]。 ===== 视频教程 ===== 以下是SDK集成参考视频,您可以通过视频学习如何集成环信SDK。 * [[https://ke.qq.com/webcourse/index.html#cid=320169&term_id=100380031&taid=2357924160922281&vid=z1428vxxdj0|OC_SDK集成]] * [[https://ke.qq.com/webcourse/index.html#cid=320169&term_id=100380031&taid=2357937045824169&vid=v1428x4yz0n|Swift_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]]。 ===== 第三方库介绍 ===== Demo 中用到的第三方库: * Parse.framework、Bolts.framework: Demo 中的用户信息存储在 Parse,这两个库是 Parse 所需要的库,开发者如果没用 Parse 存储,不要复制到自己项目中 * libMobClickLibrary.a: 友盟相关的库,用于环信 Demo 基本信息的统计,开发者不用或者已有别的版本的库不要复制到自己项目 ===== 编译工程 ===== 以上步骤进行完后,编译工程。如果没有报错,恭喜你,集成 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:ios:sdk:prepare|集成 iOS SDK 前的准备工作]] 下一页:[[im:ios:sdk:basic|iOS SDK 基础功能]]