集成 iOS SDK
更新时间: 2024/11/21 18:14:31
网易云信即时通讯(NetEase IM)SDK V10(以下简称 NIM SDK)融合了 V9 接口,本文介绍如何快速将 NIM SDK 集成到您的 iOS 项目中。
开发环境要求
开发环境需满足 iOS 9.0 及以上版本,可使用 iPhone/iPad 真机或模拟器。
第一步:新建项目(可选)
单击展开查看如何新建项目,若需集成到已有项目,可忽略此步骤。
-
启动 Xcode,在左上角选择File > New > Project。
-
在出现的工作表中,选择 iOS 平台,并在 Application 下选择 App。
-
配置新建项目,完成后,单击 Next。
必须填写 Product Name 和 Organization Identifier。
-
选择项目存储路径,单击 Create 创建项目。
第二步:集成 SDK
方式一:(推荐)CocoaPods 集成
-
安装 CocoaPods 后,在项目所在目录下执行以下命令,创建 Podfile 文件。
CocoaPods
pod init
-
在 Podfile 文件中添加对应的资源。
CocoaPods
集成资源关键词说明:关键词 所含资源 NIMSDK_LITE IM 即时通讯,默认引入网易对象存储(NetEase Object Storage,NOS)文件存储能力 NIMSDK_LITE/FCS IM 即时通讯,默认引入 S3 文件存储能力 若需要使用 IM UIKit,请参考 集成 IM UIKit。
现以只需要集成即时通讯功能(NOS)为例,您可在
Podfile
中写入:CocoaPods
pod 'NIMSDK_LITE'
-
执行以下命令更新本地仓库,查看版本信息。最新版本信息请参考 更新日志。
CocoaPods
pod search NIMSDK_LITE //本地仓库中查询资源的版本信息 pod repo update //更新本地仓库
-
执行以下命令安装 SDK:
CocoaPods
pod install
方式二:手动集成
-
前往 资源下载 获取 SDK。
Framework 说明 NIMSDK IM 即时通讯基础功能 NIMNOS NOS 文件存储能力,需要与 NIMSDK 一起使用(不能与 NIMFCS 一起使用) NIMFCS S3 文件存储能力,需要与 NIMSDK 一起使用(不能与 NIMNOS 一起使用) - NIMSDK 需要与 NIMNOS 或者 NIMFCS 搭配使用,无法单独使用。
- 若开发者服务的对象在国内,则使用 NIMSDK 和 NIMNOS Frameworks。
- 若开发者服务的对象在海外,需要 S3 文件存储能力,那么使用 NIMSDK 和 NIMFCS Frameworks。
- NIMNOS 和 NIMFCS 无法同时使用。
- NIMSDK 需要与 NIMNOS 或者 NIMFCS 搭配使用,无法单独使用。
-
将解压得到的 framework 文件拷贝到工程项目文件夹下。
-
选择 TARGETS > Project Name > General > Frameworks, Libraries, and Embedded Content 菜单,添加对应的 framework 文件,并将 Embed 属性设置为 Embed & Sign,以使得 SDK 动态库和应用签名保持一致。至此,SDK 导入完成。
下一步
完成 SDK 集成后,您需要 初始化 SDK。
此外,您可在 API 概览 了解 API 的调用方式。
常见问题
为什么打包失败?
在 手动集成 SDK 时,由于库包含模拟器版本,可能会导致打包失败。所以需要在打包之前去掉模拟器版本。
-
在工程里创建
nim_strip_archs.sh
脚本到指定目录,如Supporting Files
。 -
在
Build Phases
中增加过程,类型为New Run Script Phase
。 -
在工程里添加以下内容。如
/bin/sh "${SRCROOT}/NIMDemo/Supporting Files/nim_strip_archs.sh"
。Bash
/bin/sh 您的脚本路径
-
将以下内容复制到脚本中。
Bash
#!/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