iOS

集成 SDK

更新时间: 2024/03/14 17:08:35

本文介绍如何快速将网易云信 IM SDK(NetEase Instant Messaging SDK,NIM SDK)集成到您的 iOS 项目中。

开发环境要求

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

集成步骤

步骤 1:新建项目(可选)

点击查看如何新建项目,若需集成到已有项目,可忽略此步骤 1. 启动 Xcode,在左上角选择File > New > Project
2. 在出现的工作表中,选择 iOS 平台,并在 Application 下选择 App
3. 配置新建项目,完成后,单击 Next
必须填写 Product NameOrganization Identifier
4. 选择项目存储路径,单击 Create 创建项目。
新建项目

步骤2:集成 SDK

云信即时通讯 NIM SDK 支持以下两种集成方式,您可按需选择。

  • 通过 CocoaPods 自动集成 NIM SDK(推荐)。

  • 手动集成 NIM SDK。

CocoaPods 集成

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

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

    CocoaPods集成资源关键词说明:

    关键词 所含资源
    NIMSDK_LITE IM 即时通讯,默认引入网易对象存储(NetEase Object Storage,NOS)文件存储能力
    NIMSDK_LITE/FCS IM 即时通讯,默认引入 AWS S3 文件存储能力
    NIMKit NIMSDK_LITE+NIM_iOS_UIKit+特定版本的第三方依赖库
    NIMKit/Lite_Free NIMSDK_LITE+NIM_iOS_UIKit+不限制版本的第三方依赖库

    如只需要即时通讯功能(NOS),且不需NIM_iOS_UIKit组件,可在Podfile中写入:

        pod 'NIMSDK_LITE' 
    
  3. 执行以下命令更新本地仓库,查看版本信息。最新版本信息请参见更新日志

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

        pod install
    

手动集成

  1. 下载对应的 SDK。

    Framework 说明
    NIMSDK IM 即时通讯基础功能
    NIMNOS NOS 文件存储能力,需要与 NIMSDK 一起使用(不能与 NIMFCS 一起使用)
    NIMFCS AWS S3 文件存储能力,需要与 NIMSDK 一起使用(不能与 NIMNOS 一起使用)
    • NIMSDK 需要与 NIMNOS 或者 NIMFCS 搭配使用,无法单独使用。
      • 若开发者服务的对象在国内,则使用 NIMSDK 和 NIMNOS Frameworks。
      • 若开发者服务的对象在海外,需要 AWS S3 文件存储能力,那么使用 NIMSDK 和 NIMFCS Frameworks。
    • NIMNOS 和 NIMFCS 无法同时使用。
  2. 将解压得到的 framework 文件拷贝到工程项目文件夹下。

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

后续步骤

完成 SDK 集成后,需进行初始化

相关参考

Demo 参考

云信在 Github 上提供了开源的 IM Demo,为您后续的 IM 集成提供参考。

核心 API 列表

您可在 iOS SDK API 了解 SDK API 的调用方式和通知方式,并查看核心 API 列表和核心类列表。

常见问题

为什么打包失败?

手动集成 SDK 时,由于库包含模拟器版本,可能会导致打包失败。所以需要在打包之前去掉模拟器版本。

  1. 在工程里创建 nim_strip_archs.sh 脚本到指定目录,如 Supporting Files
  2. Build Phases 中增加过程,类型为 New Run Script Phase
  3. 在工程里添加以下内容。如/bin/sh "${SRCROOT}/NIMDemo/Supporting Files/nim_strip_archs.sh"
    /bin/sh 您的脚本路径
    
  4. 将以下内容复制到脚本中。
    #!/bin/sh
    
    # Strip invalid architectures
    
    strip_invalid_archs() {
    binary="$1"
    echo "current binary ${binary}"
    # Get architectures for current file
    archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | rev)"
    stripped=""
    for arch in $archs; do
    if ! [[ "${ARCHS}" == *"$arch"* ]]; then
    if [ -f "$binary" ]; then
    # Strip non-valid architectures in-place
    lipo -remove "$arch" -output "$binary" "$binary" || exit 1
    stripped="$stripped $arch"
    fi
    fi
    done
    if [[ "$stripped" ]]; then
    echo "Stripped $binary of architectures:$stripped"
    fi
    }
    
    APP_PATH="${TARGET_BUILD_DIR}/${WRAPPER_NAME}"
    
    # This script loops through the frameworks embedded in the application and
    # removes unused architectures.
    find "$APP_PATH" -name '*.framework' -type d | while read -r FRAMEWORK
    do
    FRAMEWORK_EXECUTABLE_NAME=$(defaults read "$FRAMEWORK/Info.plist" CFBundleExecutable)
    FRAMEWORK_EXECUTABLE_PATH="$FRAMEWORK/$FRAMEWORK_EXECUTABLE_NAME"
    echo "Executable is $FRAMEWORK_EXECUTABLE_PATH"
    
    strip_invalid_archs "$FRAMEWORK_EXECUTABLE_PATH"
    done
    
此文档是否对你有帮助?
有帮助
去反馈
  • 开发环境要求
  • 集成步骤
  • 步骤 1:新建项目(可选)
  • 步骤2:集成 SDK
  • CocoaPods 集成
  • 手动集成
  • 后续步骤
  • 相关参考
  • Demo 参考
  • 核心 API 列表
  • 常见问题
  • 为什么打包失败?