跳到主要内容

导入 SDK

您可以选择如下任意一种方式:

  • 使用 CocoaPods 添加远程依赖项,导入 Framework
  • 使用 CocoaPods 添加远程依赖项,导入 IMKit SDK 源码
  • 手动导入 Framework(手动集成不支持导入源码)
  • 5.16.1 版本开始,支持通过 Swift Package Manager 的方式导入 IMKit SDK。

环境要求

  • Xcode 需要使用 Xcode 11 及以上的版本。
  • 苹果设备的系统需要使用 iOS 9.0 及以上的版本。
  • 如果您打算通过 CocoaPods 集成 SDK,需要使用 CocoaPods 1.10.0 及以上的版本。这是因为 IMLib SDK 5.1.1 版本后变更为 XCFramework,而 CocoaPods 是从 1.10.0 版本后才完整支持 XCFramework 的集成方式,具体请参见知识库文档
  • Swift Package Manager 方式需要 Swift 5.0 及以上的版本。

如需安装 CocoaPods 环境,请参照 安装 CocoaPods

检查版本

在导入 SDK 前,可以前往融云官网 SDK 下载页面确认当前最新版本号。

CocoaPods

CocoaPods 用户可以导入 Framework 或导入 IMKit 源码。

提示

请选用同一种方式导入 IMKit 及其插件,不要在同一个 podfile 文件中混用 Framework 和源码。详见SDK 开源代码说明

导入 Framework

  1. 如果您的项目中没有 Podfile 文件,您需要打开终端并进入到项目的根目录,在终端中运行 pod init 命令,之后系统会自动创建一个默认的 Podfile 文件,在项目中的 Podfile 文件中添加如下内容:

    ruby
    pod 'RongCloudIM/IMKit','~> x.y.z'           #IMKit
    pod 'RongCloudIM/Sight','~> x.y.z' #小视频(可选)
    pod 'RongCloudIM/RongSticker','~> x.y.z' #表情(可选)
    pod 'RongCloudIM/ContactCard','~> x.y.z' #名片(可选)
    pod 'RongCloudIM/LocationKit','~> x.y.z' #位置(可选)
    提示
    • 其中 x.y.z 代表 IMLib 具体的版本号,您可以在融云官网 SDK 下载页面或在终端中通过先执行 pod repo update,再执行 pod search RongCloudIM 命令在 CocoaPods 仓库查询 IMLib 最新的版本。
    • 5.2.3 及之后的 SDK,不再内置位置插件(LocationKit),您可以根据需要手动集成。5.2.3 之前的 SDK 已内置位置插件,无需手动集成。
  2. 打开终端并进入到 Podfile 文件所在的目录,在终端中运行以下命令:

    shell
    pod install
    提示

    如果终端中出现类似 CocoaPods could not find compatible versions for 等找不到相关版本的报错,可先在终端中执行 pod repo update 命令,再执行 pod install 命令。

  3. 通过 Xcode 打开项目目录下的 xcworkspace 文件加载工程。

  4. 引用库头文件声明参考:

    Objective C
    #import <RongIMKit/RongIMKit.h>
    #import <RongSight/RongSight.h>
    #import <RongSticker/RongSticker.h>
    #import <RongContactCard/RongContactCard.h>
    #import <RongLocationKit/RongLocationKit.h>

导入源码

IMKit SDK 5.0 及以上版本 UI 相关库开放了源代码,支持在 CocoaPods 中以源码形式进行调试与集成。

  1. 如果您的项目中没有 Podfile 文件,您需要打开终端并进入到项目的根目录,在终端中运行 pod init 命令,之后系统会自动创建一个默认的 Podfile 文件,在项目中的 Podfile 文件中添加如下内容:

    ruby
    pod 'RongCloudOpenSource/IMKit','x.y.z'        #IMKit,含会话列表页面,会话页面,输入工具栏
    pod 'RongCloudOpenSource/Sight','x.y.z' #小视频(可选)
    pod 'RongCloudOpenSource/RongSticker','x.y.z' #表情(可选)
    pod 'RongCloudOpenSource/IFly','x.y.z' #语音输入(可选)
    pod 'RongCloudOpenSource/ContactCard','x.y.z' #名片(可选)
    pod 'RongCloudOpenSource/LocationKit','x.y.z' #位置(可选)
    提示
    • x.y.z 代表具体版本,各个 SDK 的最新版本号可能不同,在融云官网 SDK 下载页面或 CocoaPods 仓库能查询到。
    • IFly(语音输入)插件仅支持以源码方式导入。如需使用该插件,请务必以源码方式集成 IMKit SDK。
    • IMKit 5.1.8 之前,名片插件(ContactCard)仅支持以源码方式导入,且要求必须同样以源码方式集成 IMKit SDK。
    • IMKit 5.1.8 及之后,名片插件(ContactCard)支持以源码方式或以 Framework 方式导入。请选用同一种方式导入 IMKit 及其插件,不要混用 Framework 和源码。
  2. 打开终端并进入到 Podfile 文件所在的目录,在终端中运行以下命令:

    shell
    pod install
    提示

    如果终端中出现类似 CocoaPods could not find compatible versions for 等找不到相关版本的报错,可先在终端中执行 pod repo update 命令,再执行 pod install 命令。

  3. 通过 Xcode 打开项目目录下的 xcworkspace 文件加载工程。

  4. 引用库头文件声明参考:

    Objective C
    #import <RongCloudOpenSource/RongIMKit.h>
    #import <RongCloudOpenSource/RongSight.h>
    #import <RongCloudOpenSource/RongSticker.h>
    #import <RongCloudOpenSource/RongiFlyKit.h>
    #import <RongCloudOpenSource/RongContactCard.h>
    #import <RongCloudOpenSource/RongLocationKit.h>
提示

对于开发者自定义 UI 的需求,有以下建议:

  1. 不建议直接修改源码内容,防止后续源码升级将修改内容覆盖。
  2. 建议通过继承重写某些类与自身逻辑不一致的方法,来增加新方法以扩展自身的业务逻辑。
  3. 建议使用 SDK 对外暴露的接口,如果调用私有接口可能会出现版本升级引起私有接口变更。

SDK 开源代码说明

  • IMLib(绿色)以 framework 形式存在,属于 RongCloudIM

  • RTCLib 和 CallLib(黄色)以 framework 形式存在,属于 RongCloudRTC

  • IMKit 及其插件与 CallKit(白色)可以源码形式存在,只属于 RongCloudOpenSource

    图中白色部分的 SDK 或插件可能有对应 Framework。但在您的应用工程中,白色部分(IMKit、Sticker、IFly、ContacCard、CallKit)必须同为源码或同为 Framework,否则可能会发生冲突。

Swift Package Manager

提示

IMKit SDK 从 5.16.1 版本开始支持 Swift Package Manager 的集成方式。

  1. 打开 Xcode 工程。
  2. 点击 File > Add Package Dependency 选项。
  3. 在弹出框右上角的搜索框中,粘贴入下面的任一一个 URL 地址:
  4. Xcode 将会弹出融云 SDK 的选择列表,其中 IMKit 提供核心 IM UI 能力,其余组件可根据业务类型自行选择。

组件介绍

融云 IM SDK 提供了如下几种组件供开发者选择使用,其中 Sight、Sticker 为可选组件,其余组件为必选组件,能力介绍如下:

Swift Package动态库描述
IMLibCoreRongIMLibCore.xcframeworkIM 核心功能.
ChatRoomRongChatRoom.xcframework聊天室功能(包含 IMLibCore)
CustomerServiceRongCustomerService.xcframework客服功能(包含 IMLibCore)
DiscussionRongDiscussion.xcframework讨论组功能(包含 IMLibCore)
PublicServiceRongPublicService.xcframework公众号功能(包含 IMLibCore)
IMKitRongIMkit.xcframeworkUI 展示功能
SightRongSight.xcframework小视频功能
StickerRongSticker.xcframework贴纸功能

手动导入(仅支持 Framework)

手动集成仅支持以 Framework 方式进行集成。不支持以源码方式集成。

  1. 您可以前往融云官网 SDK 下载页面,将 IMKit SDK 下载到本地。

  2. 使用 Xcode 打开您的工程,然后将下载下来的 SDK 手动拖入到您的项目中,所需的 SDK 如下:

    Framework资源文件
    IMLib
    • RongIMLib.xcframework
    • RongIMLibCore.xcframework
    • RongChatRoom.xcframework
    • RongCustomerService.xcframework
    • RongDiscussion.xcframework
    • RongLocation.xcframework
      5.2.5 及之后版本如不使用位置插件 LocationKit,无需导入
    • RongPublicService.xcframework
    • RCConfig.plist
    IMKit
    • RongIMKit.xcframework
    • Emoji.plist
    • RCColor.plist
    • RongCloud.bundle
    • zh-Hans.lproj
    • ar.lproj
    • en.lproj
    LocationKit(可选)
    • RongLocationKit.xcframework
    Translation(可选)
    • RongTranslation.xcframework
    Sticker(可选)
    • RongSticker.xcframework
    • RongSticker.bundle
    • en.lproj
    • zh-Hans.lproj
    • ar.lproj
    Sight(可选)
    • RongSight.xcframework
    提示

    仅 5.2.2 及之后版本的 SDK 支持翻译插件(Translation),该插件暂仅适用于使用新加坡数据中心的应用。

  3. 修改您的项目配置。在 General -> Frameworks,Libraries,and Embedded Binaries 中,将手动导入的 IMKit SDK 所有的 Framework 全部改为 Embed & Sign

外部链接