导入SDK
融云支持使用 CocoaPods 和本地手动导入两种方式,将 CallKit 相关库 导入到您的应用工程中。
检查版 本
在导入 SDK 前,您可以前往 融云官网 SDK 下载页面 确认当前最新版本号。
CocoaPods
CocoaPods 用户可以导入 Framework 或导入 IMKit 源码。
注意
如您需要同时使用 CallKit、IMKit 及其插件,请务必注意,不可混用 Framework 和源码。详见 SDK 开源代码说明。
导入 Framework
-
在 Podfile 中添加如下内容:
rubypod 'RongCloudRTC/RongCallKit', '~> x.y.z'
x.y.z
代表具体版本,各个 SDK 的最新版本号可能不同,在融云下载页或 CocoaPods 仓库能查询到。 -
请在终端中运行以下命令:
rubypod install
如果出现找不到相关版本的问题,可先执行
pod repo update
,再执行pod install
。 -
上一步完成后,会自动导入指定版本的融云 SDK,CocoaPods 会在您的工程根目录下生成一个
.xcworkspace
文件,只需通过 XCode 打开该文件即可加载工程。
导入源码
从 CallKit SDK 5.1.9 开始,支持在 CocoaPods 中以源码形式进行调试与集成。
-
在 Podfile 中,按需添加支持源码集成的库:
shellpod 'RongCloudRTCOpenSource/RongCallKit','x.x.x' # RongCallKit
-
请在终端中运行以下命令:
rubypod install
如果出现找不到相关版本的问题,可先执行
pod repo update
,再执行pod install
。 -
上一步完成后,会自动导入指定版本的融云 SDK,CocoaPods 会在您的工程根目录下生成一个
.xcworkspace
文件,只需通过 XCode 打开该文件即可加载工程。 -
引用库参考:
Objective C#import <RongCallKit.h>
对于开发者自定义 UI 的需求,有以下建议:
- 不建议直接修改源码内容,防止后续源码升级将修改内容覆盖。
- 建议通过继承重写某些类与自身逻辑不一致的方法,来增加新方法以扩展自身的业务逻辑。
- 建议使用 SDK 对外暴露的接口,如果调用私有接口可能会出现版本升级引起私有接口变更。
SDK 开源代码说明
-
IMLib(绿色)以 framework 形式存在,属于
RongCloudIM
。 -
RTCLib 和 CallLib(黄色)以 framework 形式存在,属于
RongCloudRTC
。 -
IMKit 及其插件与 CallKit(白色)可以源码形式存在,只属于
RongCloudOpenSource
。图中白色部分的 SDK 或插件可能有对应 Framework。但在您的应用工程中,白色部分(IMKit、Sticker、IFly、ContacCard、CallKit)必须同为源码或同为 Framework,否则可能会发生冲突。
本地手动导入 Framework
在导入 SDK 前,您需要前往融云官网 SDK 下载页面,将音视频通话(无 UI)SDK 下载到本地。
注意
从 5.2.0 版本开始,CallKit/CallLib/RTCLib 必须与其依赖的 IMKit/IMLib SDK 保持版本一致(前三位必须保持一致)。
- 导入
RongCallKit.xcframework
,并将Embed
设置为Embed & Sign
。 - 导入
RongCallLib.xcframework
,并将Embed
设置为Embed & Sign
。 - 导入
RongRTCLib.xcframework
,并将Embed
设置为Embed & Sign
。 - 导入
RongIMLib.xcframework
,并将Embed
设置为Embed & Sign
。 - 导入
RongIMKit.xcframework
,并将Embed
设置为Embed & Sign
。 - 导入
RongIMLibCore.xcframework
,并将Embed
设置为Embed & Sign
。
工程配置
- 音视频通话需要用到摄像头和麦克风权 限,请在工程的 info.plist 中添加如下键值:
- Privacy - Microphone Usage Description
- Privacy - Camera Usage Description
- 请将工程中 Target -> Signing & Capabilities -> Background Modes 如下内容勾选:
- Audio, AirPlay, and Picture in Picture
- Remote notifications
注意
SDK 5.1.1 及之前的版本,音视频通话中需要用到
HTTP
请求,请在工程的 info.plist 中添加如下键值:App Transport Security Settings
。在此键值下请再添加Allow Arbitrary Loads
并将 Value 设置为YES
。