集成 iOS SDK

更新时间: 2024/07/09 14:41:42

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

开发环境要求

开发环境需满足 iOS 9.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 即时通讯,默认引入 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 S3 文件存储能力,需要与 NIMSDK 一起使用(不能与 NIMNOS 一起使用)
    • NIMSDK 需要与 NIMNOS 或者 NIMFCS 搭配使用,无法单独使用。
      • 若开发者服务的对象在国内,则使用 NIMSDK 和 NIMNOS Frameworks。
      • 若开发者服务的对象在海外,需要 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 集成后,需进行初始化

相关参考

API 列表

您可在 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 集成
  • 手动集成
  • 后续步骤
  • 相关参考
  • API 列表
  • 常见问题
  • 为什么打包失败?