即时通信 IM 准备工作(iOS)

这篇指导iOS开发者通过CocoaPods集成TUILiveKit直播组件,包含环境配置、代码集成、登录及异常处理,完成后可快速实现视频直播与语聊房功能。 环境要求:需Xcode 15+、iOS 14.0+及CocoaPods环境。 登录流程:调用LoginStore.login完成鉴权,推荐在自有登录业务后执行。 异常处理:提供被踢下线与签名过期的回调机制,支持重新登录。

相关产品
即时通信 IM 产品页,含版本规格、价格与购买入口。

本章节主要指导你完成 TUILiveKit UI 组件库接入的环境配置。

注意:集成方案说明:

注意:这篇档提供的是 UI 组件库接入方案,包含视频直播、语聊房的完整 UI 界面与全套业务逻辑。如果你有极高的 UI 定制需求,需要采用 无 UI(Core SDK) 集成方式,请直接参考 Core SDK 快速开始。

一、功能预览

TUILiveKit 是一个功能全面的直播组件,集成后可快速实现以下场景功能。

二、视频直播

主播准备页 主播开播页 直播列表 观众观看页
   

三、语聊房

主播准备页 主播开播页 直播列表 观众观看页
   

四、开通服务

在使用 TUILiveKit 前,请先参考 开通服务,领取 TUILiveKit 体验版或者开通付费版。

五、环境要求

·Xcode:需使用 Xcode 15 或更高版本。

·iOS 系统:支持 iOS 14.0 或更高版本的设备。

·CocoaPods 环境:已安装 CocoaPods 环境。如果你尚未安装,请参见 CocoaPods 页面安装,或按以下步骤操作:

·使用 gem 安装 CocoaPods:在终端中执行 sudo gem install cocoapods 命令进行安装。

注意:提示:

注意:sudo gem install cocoapods 安装过程中可能需要输入电脑密码,按提示输入管理员密码即可。

六、步骤 1:通过 CocoaPods 导入组件

1. 添加 Pod 依赖:

·若项目已有 Podfile 文件。

在你项目的 Podfile 文件中添加 pod 'TUILiveKit' 依赖。例如:

target 'YourProjectTarget' do # 其他已有的 Pod 依赖… # 添加 pod 'TUILiveKit' 依赖 pod 'TUILiveKit' end

·若项目没有 Podfile 文件。

在终端中通过 cd 命令切换到你的 .xcodeproj 目录下,然后执行 pod init 命令创建 Podfile 文件,创建完成后,在你的 Podfile 文件中添加 pod 'TUILiveKit' 依赖。例如:

// 如果你的项目目录是 /Users/yourusername/Projects/YourProject// 1. cd 到你的.xcodeproj 工程目录下cd /Users/yourusername/Projects/YourProject// 2. 执行 pod init,此命令运行完后,会在你的工程目录下生成一个 Podfile 文件。pod init// 3. 在生成的 Podfile 文件中添加 pod 'TUILiveKit' 依赖 target 'YourProjectTarget' do # 添加 pod 'TUILiveKit' 依赖 pod 'TUILiveKit' end

2. 安装组件:

在终端中 cd 到 Podfile 文件所在的目录,然后执行以下命令安装组件。

pod install

七、步骤 2:工程配置

为了使用音视频功能,你的应用需要获取麦克风和摄像头的权限。请在应用的 Info.plist 文件中添加以下两项,并填写对应的使用说明,这些说明将在系统请求权限时向用户显示:

<key>NSCameraUsageDescription</key><string>TUILiveKit需要访问你的相机权限,开启后录制的视频才会有画面</string><key>NSMicrophoneUsageDescription</key><string>TUILiveKit需要访问你的麦克风权限,开启后录制的视频才会有声音</string>

八、完成登录

代码集成完成后,你需要完成登录,这是使用 TUILiveKit 的关键步骤,因为只有在登录成功后才能正常使用 TUILiveKit 的各项功能,故请你耐心检查相关参数是否配置正确:

注意:说明:

注意:在示例代码中,登录操作是在 didFinishLaunchingWithOptions 方法内完成的。但在实际项目场景下,强烈推荐 你在完成自己的用户身份验证等相关登录操作后,再调用 TUILiveKit 的登录服务。这样可以避免因过早调用登录服务,导致业务逻辑混乱或数据不一致的问题,同时也能更好地适配你项目中现有的用户管理和权限控制体系。

Swift//// AppDelegate.swift//// 1. 导入 AtomicXCoreimport AtomicXCore// 2. 示例代码在 didFinishLaunchingWithOptions 完成登录,推荐你在自己登录业务完成后再调用登录服务 func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { // 3. 调用登录接口 LoginStore.shared.login(sdkAppID: 1400000001, // 请替换为开通服务控制台的 SDKAppID userID: "denny", // 请替换为你的 UserID userSig: "xxxxxxxxxxx") { [weak self] result in // 你可以在控制台中计算一个 UserSig 并填在这个位置 guard let self = self else { return } switch result { case .success(): print("login success") case .failure(let err): print("login failed. code: \\(err.code), error:\\(err.message)") } } return true}

登录接口参数说明

参数 类型 说明
SDKAppID Int 从 TRTC 控制台 > 应用管理 获取。
UserID String 当前用户的唯一 ID,仅包含英文字母、数字、连字符和下划线。
userSig String 用于腾讯云鉴权的票据。请注意:开发环境:你可以采用本地 GenerateTestUserSig.genTestSig 函数生成 UserSig 或者通过 UserSig 辅助工具 生成临时的 UserSig。生产环境:为了防止密钥泄露,请务必采用服务端生成 UserSig 的方式。详细信息请参见 服务端生成 UserSig。更多信息请参见 如何计算及使用 UserSig。

九、登录异常状态处理【可选】

LoginStore 提供了登录状态回调机制,方便你处理可能出现的登录异常情况,主要包括 “被踢下线” 和 “签名过期” 这两种异常状态的回调:

·被踢下线:用户在线情况下被踢,SDK 会通过 onKickedOffline 回调通知给你,此时可以在 UI 提示用户,并调用 LoginStore.shared.login 重新登录。

·签名过期:用户在线期间收到 onUserSigExpired 回调,说明你之前给该用户签发的 userSig 已经过期了,这个时候如果当前用户在你后台的登录态依然有效,你可以让你的 APP 向你的后台请求新的 userSig,并调用 LoginStore.shared.login 续签登录态。

// YourLoginService 代表你负责登录的业务模块class YourLoginService: NSObject { private var cancelableSet: Set<AnyCancellable> = [] // 监听登录状态回调 func subscribeLoginStatus() { LoginStore.shared.loginEventPublisher .receive(on: RunLoop.main) .sink { [weak self] loginEvent in guard let self = self else { return } switch loginEvent { case .kickedOffline: // 用户被踢下线回调 // 你的业务代码:UI 交互提示用户,然后重新登录 break case .loginExpired: // 用户签名过期回调 // 你的业务代码:如果当前用户在你后台的登录态依然有效, // 你可以让你的 app 向你的后台请求新的 userSig, // 并调用 LoginStore.shared.login 续签登录态。 break default: break } } .store(in: &self.cancelableSet) }}

十、下一步

恭喜你,现在你已经成功集成了直播组件并完成了登录。接下来,你可以根据你的业务场景实现主播开播、观众观看、直播列表等功能。

业务场景 描述 集成指引
视频直播 包含主播开播、观众观看、连麦互动、美颜设置、礼物弹幕等全套功能。 主播开播观众观看
语聊房 包含麦位管理、背景音乐、礼物互动、语聊控场等完整业务逻辑。 主播开播观众观看
直播列表 展示直播间/语聊房列表,支持封面、人数、房间标题等信息展示。 直播列表

十一、pod install 执行后本地安装找不到 TUILiveKit 最新版本?

如果无法安装 TUILiveKit 最新版本,请按以下步骤操作:

1. 在 Podfile 所在目录下删除 Podfile.lock 和 Pods,你可以选择手动删除或终端执行以下命令

// cd 到 Podfile 所在目录下rm -rf Pods/rm Podfile.lock

2. 在 Podfile 所在目录下执行 pod install –repo-update

// cd 到 Podfile 所在目录下pod install –repo-update

十二、每次进房都需要调用登录吗?

不需要。通常你只需要完成一次 LoginStore.shared.login 调用即可,我们建议你将 LoginStore.shared.login 和 LoginStore.shared.logout 与自己的登录业务关联。

十三、Podfile 文件有没有示例配置可以参考?

你可以参考 GitHub TUILiveKit Example 工程 Podfile 示例文件。

赞 (0)
上一篇 4天前
下一篇 4天前