导入说明
1、环境要求
集成容联云SDK系统支持情况:
- 最低支持到iOS8.0系统。
2、iOS集成指南
2.1 导入sdk
2.1.1 导入IM sdk
如果您仅集成IM功能,只需要:
第一步:先下载IM对应的sdk,解压之后目录如图所示例:
Yuntx_IMLib_V5.x.xr.a库是静态库,Manager文件夹是主调函数声明,Delegate文件夹是回调函数声明。
第二步:然后导入sdk。将解压后的文件夹(Yuntx_IMLib_SDK)拖入您的工程中,并勾选上Destination,如图所示:

第三步:点击finish,完成SDK添加,工程目录如下图所示:
2.1.2 导入全功能 sdk
如果您要集成全功能,包含IM、实时音视频、会议,则需要:
第一步:先下载全功能对应的sdk,解压之后目录如图所示例:
Yuntx_FullLib_V5.x.xr.a库是静态库,Manager文件夹是主调函数声明,Delegate文件夹是回调函数声明。
第二步:然后导入sdk。将解压后的文件夹(Yuntx_FullLib_SDK)拖入您的工程中,并勾选上Destination,如图所示:
第三步:点击finish,完成SDK添加,工程目录如下图所示:
注意:由于iOS编译的特殊性,静态库中包含i386、x86_64、armv7、arm64平台,导致SDK的静态库(.a文件)会比较大,但您实际集成编译出ipa后,只会增加2MB左右。
2.2 设置工程属性
向Build Phases -> Link Binary With Libraries 中添加系统依赖库,操作步骤如下所示:
按照上图,点击加号后,显示下图:在搜索框中输入需要的依赖库名称,如添加sqlite库,按图步骤,点击Add添加依赖库成功(Xcode7.0以上尾缀是.tbd)

SDK需要添加系统依赖库如下:
- libresolv.9.tbd
- libicucore.dylib
- libsqlite3.dylib
- libz.dylib
- libstdc++6.0.9.dylib
- CoreTelephony.framework
- MediaPlayer.framework
- CFNetwork.framework
- SystemConfiguration.framework
- MobileCoreServices.framework
- AudioToolbox.framework
- CoreGraphics.framework
- AVFoundation.framework
- VideoToolbox.framework
添加完依赖库之后,第一步即完成,可以进行下一步了。
编译设置:
因为SDK采用的是C代码编写,所以需要应用设置混编设置:
- 如图使用系统默认模式编译:

- 在第一次调用的地方,如demo中,更改AppDelegate.m文件的后缀为.mm如果不设置这两项,编译时出现std::错误。
- IM插件暂不支持bitcode,Xcode7之后创建的工程需要关闭bitcode设置。
如图:

- 需要在other link flags 加上-ObjC字段,这样可以保证视频通话可以看到头像。
注:5.1.5及以前版本other link flags需加为-all_load。
如图:

2.3、适配iOS 10注意事项
- IOS 10在使用摄像头、麦克风、定位、相册等功能的时候,会检查相应权限。用户需要手动在项目的info.plist文件中添加相应权限,如下图所示:

如未手动添加权限时,会报如下错误:

- 对于iOS 10而言,需将Capabilities -> Push Notifications 开启,如图所示:

开启后会生成如下图所示文件:

注:如不开启改选项,会出现无法获取deviceToken,老项目或会出现deviceToken无效的情况。
3、请求回调和通知回调
SDK中和服务端的交互采取异步回调方法,有两种异步回调方法,一种是请求回调方法,一种是通知回调方法,详细介绍如下:
- 请求回调方法:即由用户主动发出一个操作请求,请求的结果在回调中返回。具体说就是在调用sdk的方法时,sdk的方法参数中有回调方法,请求的结果直接在参数的回调方法中处理。例如发送消息的方法,包含获知消息是否发送成功的回调,此方法就是请求回调方法。
- 通知回调方法:通知回调是指由云通讯服务端主动给客户端发送的信令或业务消息,如接收消息,就是由服务端通知应用来收消息,此方法就是通知回调方法。