差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
后一修订版 两侧同时换到之后的修订记录
im:ios:sdk:prepare [2019/04/16 11:23]
jk [Demo 目录介绍]
im:ios:sdk:prepare [2020/01/17 09:06]
huanxinfudh [Pod 导入SDK]
行 1: 行 1:
 ====== iOS SDK 快速集成 ====== ====== iOS SDK 快速集成 ======
-在您阅读此文档时,我们假定您已经具备了基础的 iOS 应用开发经验,并能够理解相关基础概念,SDK 支持 **iOS8** 及以上 iOS 版本。+在您阅读此文档时,我们假定您已经具备了基础的 iOS 应用开发经验,并能够理解相关基础概念,最新版本的SDK 支持 **iOS9** 及以上 iOS 系统版本。 
  
 **注:**此文档对之前的文档进行了优化,结构更清晰,帮助您更快的集成环信 iOS SDK,且对UI进行了改版优化。如果您已集成环信 iOS SDK ,并习惯于之前文档的结构,希望再次了解其集成方式,可参考之前的[[im:​ios:​sdk:​import|旧文档]]。 **注:**此文档对之前的文档进行了优化,结构更清晰,帮助您更快的集成环信 iOS SDK,且对UI进行了改版优化。如果您已集成环信 iOS SDK ,并习惯于之前文档的结构,希望再次了解其集成方式,可参考之前的[[im:​ios:​sdk:​import|旧文档]]。
 +
 +''​特殊提示:如果使用的是xcode11打包,那么需要先将环信SDK内的模拟器框架去掉,否则会报"​IPA processing failed
 +"​的错误。''​ (如何剔除SDK内的模拟器框架,见iOS SDK 快速集成中的'​集成动态库上传AppStore'​)
 ---- ----
  
行 12: 行 16:
  
 Appkey:一个 APP 的唯一标识 Appkey:一个 APP 的唯一标识
-在创建好的应用内注册两个 IM 用户(也可以称为环信 id),例如: 账号:user1,密码:123 ; 账号:user2,密码:123,用来通过 SDK 登录环信服务器,收发消息测试。 
  
 IM 用户:一个 appkey 下的唯一标识用户,用来登录环信服务器进行收发消息的用户。 IM 用户:一个 appkey 下的唯一标识用户,用来登录环信服务器进行收发消息的用户。
 +可以在创建好的应用内注册两个 IM 用户(也可以称为环信 id),例如: 账号:user1,密码:123 ; 账号:user2,密码:123,用来通过 SDK 登录环信服务器,收发消息测试。
  
  
行 66: 行 70:
 环信 SDK 支持**pod 方式导入**,**手动导入**两种方式任选其一即可,下面分别介绍两种导入方式。 环信 SDK 支持**pod 方式导入**,**手动导入**两种方式任选其一即可,下面分别介绍两种导入方式。
  
 +''​从3.6.0版本开始,sdk只支持ios9.0及以上版本。''​
 ==== Pod 导入SDK ==== ==== Pod 导入SDK ====
  
-推荐使用 ''​Cocoapods''​ 集成环信 SDK。 Cocoapods 提供了一个简单的依赖管理系统,避免手动导入产生的错误(首先需要确认已经安装了 Cocoapods )。+推荐使用 ''​Cocoapods''​ 集成环信 SDK。 Cocoapods 提供了一个简单的依赖管理系统,避免手动导入产生的错误(首先需要确认已经安装了 Cocoapods,如果没有安装过Cocoapods,参考安装使用指南:https://​www.cnblogs.com/​wangluochong/​p/​5567082.html)。
  
 <​code>​ <​code>​
行 90: 行 95:
 </​code>​ </​code>​
  
 +执行完pod install,打开工程目录,找到.xcworkspace文件运行即可。
 ---- ----
  
 ==== 手动导入 SDK ==== ==== 手动导入 SDK ====
  
-[[https://download-sdk.oss-cn-beijing.aliyuncs.com/downloads/iOS_IM_SDK_V3.5.3.zip|下载环信demo]]+[[http://www.easemob.com/download/im|下载环信demo]]
  
  
行 117: 行 123:
 === 设置工程属性 === === 设置工程属性 ===
  
 +''​Xcode 11''​版本以下的配置(不包含Xcode 11)
 向 General → Embedded Binaries 中添加依赖库。 向 General → Embedded Binaries 中添加依赖库。
  
 {{:​im:​ios:​sdk:​依赖库.png?​direct|}} {{:​im:​ios:​sdk:​依赖库.png?​direct|}}
  
 +''​Xcode 11''​版本的配置
 +向 General → Frameworks,​Libraries,​and Embedded Binaries 中添加依赖库。
 +  - 注意要将'​Do Not Embed'​改成'​Embed & Sign'
 +{{:​im:​ios:​sdk:​fc574fc2-6514-4cbf-8945-8d3e55a6dfb5.jpg?​600|}}
 ---- ----
  
行 169: 行 180:
   * Conversation------会话列表模块   * Conversation------会话列表模块
   ​   ​
-  * Call------实时音视频模块+  * Call------实时音视频模块(包含 1v1 实时通话以及多人实时通话的功能)
   ​   ​
   * Contact------好友列表模块   * Contact------好友列表模块
行 278: 行 289:
  
 ==== 登录环信服务器 ==== ==== 登录环信服务器 ====
 +建议使用异步登录方法,防止网络不好的情况下,出现卡UI主线程的情况出现。
 <​code>​ <​code>​
 // 传入在应用(appkey)下注册的IM用户user1,密码123,用于登录环信服务器 // 传入在应用(appkey)下注册的IM用户user1,密码123,用于登录环信服务器
-EMError *error = [[EMClient sharedClient] loginWithUsername:​@"​user1"​ password:​@"​123"​]; + 
-if (!error) { +[[EMClient sharedClient] loginWithUsername:​@"​user1"​ password:​@"​123" ​completion:​^(NSString *aUsername, EMError *aError) { 
-    NSLog(@"​登录成功"​);​ +    if (!aError) { 
-}+        NSLog(@"​登录成功"​);​ 
 +    else { 
 +        NSLog(@"​登录失败的原因---%@",​ aError.errorDescription);​ 
 +    } 
 +}];
 </​code>​ </​code>​
  
行 377: 行 392:
 由于 iOS 编译的特殊性,为了方便开发者使用,我们将 ''​i386'',​ ''​x86_64'',​ ''​armv7'',​ ''​arm64''​ 几个平台都合并到了一起,所以使用动态库上传 appstore 时需要将 ''​i386''​ , ''​x86_64''​ 两个平台删除后,才能正常提交审核\\ 由于 iOS 编译的特殊性,为了方便开发者使用,我们将 ''​i386'',​ ''​x86_64'',​ ''​armv7'',​ ''​arm64''​ 几个平台都合并到了一起,所以使用动态库上传 appstore 时需要将 ''​i386''​ , ''​x86_64''​ 两个平台删除后,才能正常提交审核\\
  
-在 SDK 当前路径下执行以下命令删除i386,​ x86_64两个平台\\+首先进入到Launchpad中,找到其他---打开终端,然后cd到SDK的所在目录。简单的方式就是找到项目中的环信SDK,然后终端先输入cd,然后按空格键,将环信SDK拖拽到终端内,会自动生成SDK的路径,然后环信SDK名称.framework删除掉,不要cd到环信SDK,只cd到SDK所在的目录下即可。 
 + 
 +示例:比如环信SDK的路径是:/​Users/​easemob-dn0164/​Desktop/​iOS_IM_SDK_V3.6.0/​HyphenateFullSDK/​Hyphenate.framework 
 +那么只需要cd到/​Users/​easemob-dn0164/​Desktop/​iOS_IM_SDK_V3.6.0/​HyphenateFullSDK/​ 就可以了。 
 + 
 +后续在 SDK 当前路径下执行以下命令删除i386,​ x86_64两个平台\\
 bak 文件是备份目录,上传appstore之后需要替换回 bak 目录下的 SDK\\ bak 文件是备份目录,上传appstore之后需要替换回 bak 目录下的 SDK\\
 实时音视频版本''​Hyphenate.framework''​ 实时音视频版本''​Hyphenate.framework''​
行 398: 行 418:
 mv HyphenateLite HyphenateLite.framework/​ mv HyphenateLite HyphenateLite.framework/​
 </​code>​ </​code>​
 +===== DEMO 体验 =====
 +[[https://​pan.baidu.com/​s/​1LurYGr81Dt8G_W-UzlNm-w |下载地址]],提取码 **ehil**
 +
 +**注:**此 Demo 为精简版 Demo,但已涵盖了主要功能。如需更全面的功能,请前往[[http://​www.easemob.com/​download/​im|下载页]]
 +
  
 ---- ----