跳到主要内容

导入 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
    Sticker(可选)
    • RongSticker.xcframework
    • RongSticker.bundle
    • en.lproj
    • zh-Hans.lproj
    • ar.lproj
    Sight(可选)
    • RongSight.xcframework
  3. 修改您的项目配置。在 General -> Frameworks,Libraries,and Embedded Binaries 中,将手动导入的 IMKit SDK 所有的 Framework 全部改为 Embed & Sign。

外部链接​