集成 iOS SDK

更新时间: 2026/11/06 17:15:17

网易云信即时通讯(NetEase IM)SDK V10(以下简称 NIM SDK)融合了 V9 接口,本文介绍如何快速将 NIM SDK 集成到您的 iOS 项目中。

本文主要介绍底层 iOS SDK 的集成,若您需要集成对应的 UI 组件,请参考 集成 iOS UIKit。

开发环境

开发环境要求需满足 iOS 9.0 及以上版本,可使用 iPhone/iPad 真机或模拟器。

第一步:新建项目

单击展开查看如何新建项目,若需集成到已有项目,可忽略此步骤。
  1. 启动 Xcode,在左上角选择 File > New > Project。

  2. 在出现的工作表中,选择 iOS 平台,并在 Application 下选择 App。

  3. 配置新建项目,完成后,单击 Next。

    必须填写 Product Name 和 Organization Identifier。

  4. 选择项目存储路径,单击 Create 创建项目。

第二步:集成 SDK

方式一:(推荐)CocoaPods 集成

  1. 安装 CocoaPods 后,在项目所在目录下执行以下命令,创建 Podfile 文件。

    CocoaPodspod init
    
  2. 在 Podfile 文件中添加对应的资源。

    CocoaPods 集成资源关键词说明:

    关键词 所含资源
    NIMSDK_LITE IM 即时通讯,默认使用网易对象存储(NetEase Object Storage,NOS)文件存储能力。
    NIMSDK_LITE/NOS IM 即时通讯,引入高可用模块。
    NIMSDK_LITE/FCS IM 即时通讯,引入 S3 文件存储能力。
    NIMSDK_LITE/FTS 本地检索库,若需要使用本地检索功能,需要提前引入。
    NIMSDK_LITE/QChat IM 即时通讯的圈组能力,若需要使用圈组功能,需要提前引入。

    若需要使用 IM UIKit,请参考 集成 IM UIKit。

    自 V10.11.10 版本起,云信资源将统一发布至以下地址:

    source 'https://github.com/netease-im/Specs.git'
    
    //优先使用 GitHub,如果无法访问可改用 Gitee,两者不要同时写
    //source 'https://gitee.com/netease-im/Specs.git'
    
    //如果依赖公共 pod,保留以下 cocoapods 地址
    source 'https://cdn.cocoapods.org/'
    

    现以只需要集成即时通讯功能(NOS)为例,您可在 Podfile 中写入:

    CocoaPodspod 'NIMSDK_LITE'
    //若需要使用本地检索功能,单独引入 FTS
    //pod 'NIMSDK_LITE/FTS'
    
  3. 执行以下命令更新本地仓库,查看版本信息。最新版本信息请参考 更新日志。

    CocoaPodspod search NIMSDK_LITE   //本地仓库中查询资源的版本信息
    pod repo update          //更新本地仓库
    
  4. 执行以下命令安装 SDK:

    CocoaPodspod install
    

方式二:SPM 集成

云信 NIM SDK 可以通过 Swift Package Manager 添加到项目中。

通过 XCode 界面集成
  1. 在 Xcode 中打开你的项目。

  2. 依次点击菜单栏 File → Add Package Dependencies...。

  3. 在搜索框中输入以下地址。

    https://github.com/netease-im/nimsdk-lite-spm.git
    
  4. 选择版本规则(推荐选择 Up to Next Major)。

  5. 勾选你需要的 Product。

通过 Package.swift 集成

在你的 Package.swift 文件中添加如下配置:

swift// swift-tools-version:5.7
import PackageDescription

let package = Package(
    name: "YourApp",
    dependencies: [
        .package(url: "https://github.com/netease-im/nimsdk-lite-spm.git", from: "10.9.81")
    ],
    targets: [
        .target(
            name: "YourApp",
            dependencies: [
                .product(name: "NIMSDK_LITE", package: "nimsdk-lite-spm")
            ]
        )
    ]
)

按需引入所需 Product,避免集成不必要的模块。以下是可用的 Product 列表:

  • NIMSDK_LITE:IM 即时通讯,默认使用网易对象存储(NetEase Object Storage,NOS)文件存储能力。
  • NOS:IM 即时通讯,引入网易对象存储(NetEase Object Storage,NOS)文件存储能力。
  • FCS:IM 即时通讯,引入 S3 文件存储能力。
  • FTS:本地检索库,若需要使用本地检索功能,需要提前引入。
  • QChat:IM 即时通讯的圈组能力,若需要使用圈组功能,需要提前引入。
  • SPM 的 Tag 版本号与 SDK 正式发布版本保持一致。
  • 每个版本对应的二进制文件下载地址及 SHA-256 校验值均记录在 Package.swift 中。SwiftPM 会使用 Package.swift 中声明的 SHA-256 校验值对每个二进制目标进行完整性验证。若下载的二进制文件与校验值不匹配,集成过程将自动终止,以确保安全性。
  • nimsdk-spm 与 nimsdk-lite-spm 不可同时集成到同一个 App 中。
  • NIM SDK 的 SPI 地址:请点击 此处 访问,具体的使用方法请参考 官网文档。

方式三:手动集成

  1. 前往 资源下载 获取 SDK。

    国内服务(NOS)
    Framework 是否必选 说明
    NIMSDK 是 IM 即时通讯基础功能。
    NIMHA V10.10.1 及以上版本统一使用 NIMHA,V10.10.1 以下版本依旧可使用 NIMNOS。 是 NOS 文件存储能力。
    NIMSocketRocket 否 WebSocket 能力,用于提升联通性。
    NIMQUIC 否 QUIC 能力,用于提升联通性。
    NIMQChat 否 IM 即时通讯的圈组能力,可自主选择集成。
    NIMDBEx 否 本地检索库,用于使用本地检索功能,可自主选择集成。
    海外服务(FCS)
    Framework 是否必选 说明
    NIMSDK 是 IM 即时通讯基础功能。
    NIMHA V10.10.1 及以上版本统一使用 NIMHA,V10.10.1 以下版本依旧可使用 NIMNOS。 是 NOS 文件存储能力。
    NIMAWSCore 是 S3 文件存储能力,NIMAWSCore 和 NIMAWSS3 必须同时引入。
    NIMAWSS3 是 S3 文件存储能力,NIMAWSCore 和 NIMAWSS3 必须同时引入。
    NIMSocketRocket 否 WebSocket 能力,用于提升联通性。
    NIMQUIC 否 QUIC 能力,用于提升联通性。
    NIMQChat 否 IM 即时通讯的圈组能力,可自主选择集成。
    NIMDBEx 否 本地检索库,用于使用本地检索功能,可自主选择集成。
    • 针对海外服务的文件存储 NIMFCS(历史的 S3 文件存储能力)由于体积过大,现以使用 NIMAWSCore&NIMAWSS3 替换。若您之前引入了 NIMFCS,请及时替换。V10.10.1 及以上版本中,NIMFCS 统一替换成 NIMHA。
    • V10.10.1 以下版本中,NIMNOS 和 NIMFCS 无法同时使用。V10.10.1 及以上版本中,NIMNOS 和 NIMFCS 都统一替换成 NIMHA。
  2. 将解压得到的 framework 文件拷贝到工程项目文件夹下。

  3. 选择 TARGETS > Project Name > General > Frameworks, Libraries, and Embedded Content 菜单,添加对应的 framework 文件,并将 Embed 属性设置为 Embed & Sign,以使得 SDK 动态库和应用签名保持一致。至此,SDK 导入完成。

若您历史已集成 NIM SDK,请在 Xcode 中检查并调整手动添加的条目:

  1. 选择 App target。
  2. 打开 General -> Frameworks, Libraries, and Embedded Content,删除旧 xcframework,并添加 NIMHA.xcframework。
  3. 打开 Build Phases -> Link Binary With Libraries,删除旧 xcframework,并添加 NIMHA.xcframework。
  4. 打开 Build Phases -> Embed Frameworks,删除旧 xcframework,并添加 NIMHA.xcframework。
  5. 如果工程中有自定义脚本复制旧 xcframework,也需要把复制对象改成 NIMHA.xcframework。

下一步

完成 SDK 集成后,您需要 初始化 SDK。

此外,您可在 API 概览 了解 API 的调用方式。

海外数据中心

如果您服务的用户主要在非中国大陆地区,您可以选择接入海外数据中心,具体的接入流程、节点迁移流程以及相关说明请参考 海外数据中心。

常见问题

此文档是否对你有帮助?
有帮助
去反馈
  • 开发环境
  • 第一步:新建项目
  • 第二步:集成 SDK
  • 方式一:(推荐)CocoaPods 集成
  • 方式二:SPM 集成
  • 方式三:手动集成
  • 下一步
  • 海外数据中心
  • 常见问题